home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 5 / BBS in a Box -Volume V (BBS in a Box) (April 1992).iso / Files / Prog / M / MPWGCC (Sources).cpt / Sources / final.c < prev    next >
MacBinary  |  1990-09-05  |  43.8 KB  |  [TEXT/MPS ]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, Wed Sep 5 17:40:46 1990, modified Wed Sep 5 17:40:46 1990, creator 'MPS ', type ASCII, 44047 bytes "final.c" , at 0xac8f 470 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MPS ]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 07 66 69 6e 61 6c 2e | 63 00 00 00 00 00 00 00 |..final.|c.......|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 00 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 ac 0f 00 | 00 01 d6 a3 0b 21 5e a3 |........|.....!^.|
|00000060| 0b 21 5e 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.!^.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 16 b9 00 00 |........|........|
|00000080| 2f 2a 20 43 6f 6e 76 65 | 72 74 20 52 54 4c 20 74 |/* Conve|rt RTL t|
|00000090| 6f 20 61 73 73 65 6d 62 | 6c 65 72 20 63 6f 64 65 |o assemb|ler code|
|000000a0| 20 61 6e 64 20 6f 75 74 | 70 75 74 20 69 74 2c 20 | and out|put it, |
|000000b0| 66 6f 72 20 47 4e 55 20 | 63 6f 6d 70 69 6c 65 72 |for GNU |compiler|
|000000c0| 2e 0d 20 20 20 43 6f 70 | 79 72 69 67 68 74 20 28 |.. Cop|yright (|
|000000d0| 43 29 20 31 39 38 37 2c | 20 31 39 38 38 2c 20 31 |C) 1987,| 1988, 1|
|000000e0| 39 38 39 20 46 72 65 65 | 20 53 6f 66 74 77 61 72 |989 Free| Softwar|
|000000f0| 65 20 46 6f 75 6e 64 61 | 74 69 6f 6e 2c 20 49 6e |e Founda|tion, In|
|00000100| 63 2e 0d 20 20 20 43 6f | 70 79 72 69 67 68 74 20 |c.. Co|pyright |
|00000110| 28 43 29 20 31 39 38 39 | 2c 20 31 39 39 30 20 41 |(C) 1989|, 1990 A|
|00000120| 70 70 6c 65 20 43 6f 6d | 70 75 74 65 72 2c 20 49 |pple Com|puter, I|
|00000130| 6e 63 2e 0d 0d 54 68 69 | 73 20 66 69 6c 65 20 69 |nc...Thi|s file i|
|00000140| 73 20 70 61 72 74 20 6f | 66 20 47 4e 55 20 43 43 |s part o|f GNU CC|
|00000150| 2e 0d 0d 47 4e 55 20 43 | 43 20 69 73 20 66 72 65 |...GNU C|C is fre|
|00000160| 65 20 73 6f 66 74 77 61 | 72 65 3b 20 79 6f 75 20 |e softwa|re; you |
|00000170| 63 61 6e 20 72 65 64 69 | 73 74 72 69 62 75 74 65 |can redi|stribute|
|00000180| 20 69 74 20 61 6e 64 2f | 6f 72 20 6d 6f 64 69 66 | it and/|or modif|
|00000190| 79 0d 69 74 20 75 6e 64 | 65 72 20 74 68 65 20 74 |y.it und|er the t|
|000001a0| 65 72 6d 73 20 6f 66 20 | 74 68 65 20 47 4e 55 20 |erms of |the GNU |
|000001b0| 47 65 6e 65 72 61 6c 20 | 50 75 62 6c 69 63 20 4c |General |Public L|
|000001c0| 69 63 65 6e 73 65 20 61 | 73 20 70 75 62 6c 69 73 |icense a|s publis|
|000001d0| 68 65 64 20 62 79 0d 74 | 68 65 20 46 72 65 65 20 |hed by.t|he Free |
|000001e0| 53 6f 66 74 77 61 72 65 | 20 46 6f 75 6e 64 61 74 |Software| Foundat|
|000001f0| 69 6f 6e 3b 20 65 69 74 | 68 65 72 20 76 65 72 73 |ion; eit|her vers|
|00000200| 69 6f 6e 20 31 2c 20 6f | 72 20 28 61 74 20 79 6f |ion 1, o|r (at yo|
|00000210| 75 72 20 6f 70 74 69 6f | 6e 29 0d 61 6e 79 20 6c |ur optio|n).any l|
|00000220| 61 74 65 72 20 76 65 72 | 73 69 6f 6e 2e 0d 0d 47 |ater ver|sion...G|
|00000230| 4e 55 20 43 43 20 69 73 | 20 64 69 73 74 72 69 62 |NU CC is| distrib|
|00000240| 75 74 65 64 20 69 6e 20 | 74 68 65 20 68 6f 70 65 |uted in |the hope|
|00000250| 20 74 68 61 74 20 69 74 | 20 77 69 6c 6c 20 62 65 | that it| will be|
|00000260| 20 75 73 65 66 75 6c 2c | 0d 62 75 74 20 57 49 54 | useful,|.but WIT|
|00000270| 48 4f 55 54 20 41 4e 59 | 20 57 41 52 52 41 4e 54 |HOUT ANY| WARRANT|
|00000280| 59 3b 20 77 69 74 68 6f | 75 74 20 65 76 65 6e 20 |Y; witho|ut even |
|00000290| 74 68 65 20 69 6d 70 6c | 69 65 64 20 77 61 72 72 |the impl|ied warr|
|000002a0| 61 6e 74 79 20 6f 66 0d | 4d 45 52 43 48 41 4e 54 |anty of.|MERCHANT|
|000002b0| 41 42 49 4c 49 54 59 20 | 6f 72 20 46 49 54 4e 45 |ABILITY |or FITNE|
|000002c0| 53 53 20 46 4f 52 20 41 | 20 50 41 52 54 49 43 55 |SS FOR A| PARTICU|
|000002d0| 4c 41 52 20 50 55 52 50 | 4f 53 45 2e 20 20 53 65 |LAR PURP|OSE. Se|
|000002e0| 65 20 74 68 65 0d 47 4e | 55 20 47 65 6e 65 72 61 |e the.GN|U Genera|
|000002f0| 6c 20 50 75 62 6c 69 63 | 20 4c 69 63 65 6e 73 65 |l Public| License|
|00000300| 20 66 6f 72 20 6d 6f 72 | 65 20 64 65 74 61 69 6c | for mor|e detail|
|00000310| 73 2e 0d 0d 59 6f 75 20 | 73 68 6f 75 6c 64 20 68 |s...You |should h|
|00000320| 61 76 65 20 72 65 63 65 | 69 76 65 64 20 61 20 63 |ave rece|ived a c|
|00000330| 6f 70 79 20 6f 66 20 74 | 68 65 20 47 4e 55 20 47 |opy of t|he GNU G|
|00000340| 65 6e 65 72 61 6c 20 50 | 75 62 6c 69 63 20 4c 69 |eneral P|ublic Li|
|00000350| 63 65 6e 73 65 0d 61 6c | 6f 6e 67 20 77 69 74 68 |cense.al|ong with|
|00000360| 20 47 4e 55 20 43 43 3b | 20 73 65 65 20 74 68 65 | GNU CC;| see the|
|00000370| 20 66 69 6c 65 20 43 4f | 50 59 49 4e 47 2e 20 20 | file CO|PYING. |
|00000380| 49 66 20 6e 6f 74 2c 20 | 77 72 69 74 65 20 74 6f |If not, |write to|
|00000390| 0d 74 68 65 20 46 72 65 | 65 20 53 6f 66 74 77 61 |.the Fre|e Softwa|
|000003a0| 72 65 20 46 6f 75 6e 64 | 61 74 69 6f 6e 2c 20 36 |re Found|ation, 6|
|000003b0| 37 35 20 4d 61 73 73 20 | 41 76 65 2c 20 43 61 6d |75 Mass |Ave, Cam|
|000003c0| 62 72 69 64 67 65 2c 20 | 4d 41 20 30 32 31 33 39 |bridge, |MA 02139|
|000003d0| 2c 20 55 53 41 2e 20 20 | 2a 2f 0d 0d 0d 2f 2a 20 |, USA. |*/.../* |
|000003e0| 54 68 69 73 20 69 73 20 | 74 68 65 20 66 69 6e 61 |This is |the fina|
|000003f0| 6c 20 70 61 73 73 20 6f | 66 20 74 68 65 20 63 6f |l pass o|f the co|
|00000400| 6d 70 69 6c 65 72 2e 0d | 20 20 20 49 74 20 6c 6f |mpiler..| It lo|
|00000410| 6f 6b 73 20 61 74 20 74 | 68 65 20 72 74 6c 20 63 |oks at t|he rtl c|
|00000420| 6f 64 65 20 66 6f 72 20 | 61 20 66 75 6e 63 74 69 |ode for |a functi|
|00000430| 6f 6e 20 61 6e 64 20 6f | 75 74 70 75 74 73 20 61 |on and o|utputs a|
|00000440| 73 73 65 6d 62 6c 65 72 | 20 63 6f 64 65 2e 0d 0d |ssembler| code...|
|00000450| 20 20 20 43 61 6c 6c 20 | 60 66 69 6e 61 6c 5f 73 | Call |`final_s|
|00000460| 74 61 72 74 5f 66 75 6e | 63 74 69 6f 6e 27 20 74 |tart_fun|ction' t|
|00000470| 6f 20 6f 75 74 70 75 74 | 20 74 68 65 20 61 73 73 |o output| the ass|
|00000480| 65 6d 62 6c 65 72 20 63 | 6f 64 65 20 66 6f 72 20 |embler c|ode for |
|00000490| 66 75 6e 63 74 69 6f 6e | 20 65 6e 74 72 79 2c 0d |function| entry,.|
|000004a0| 20 20 20 60 66 69 6e 61 | 6c 27 20 74 6f 20 6f 75 | `fina|l' to ou|
|000004b0| 74 70 75 74 20 61 73 73 | 65 6d 62 6c 65 72 20 63 |tput ass|embler c|
|000004c0| 6f 64 65 20 66 6f 72 20 | 73 6f 6d 65 20 52 54 4c |ode for |some RTL|
|000004d0| 20 63 6f 64 65 2c 0d 20 | 20 20 60 66 69 6e 61 6c | code,. | `final|
|000004e0| 5f 65 6e 64 5f 66 75 6e | 63 74 69 6f 6e 27 20 74 |_end_fun|ction' t|
|000004f0| 6f 20 6f 75 74 70 75 74 | 20 61 73 73 65 6d 62 6c |o output| assembl|
|00000500| 65 72 20 63 6f 64 65 20 | 66 6f 72 20 66 75 6e 63 |er code |for func|
|00000510| 74 69 6f 6e 20 65 78 69 | 74 2e 0d 20 20 20 49 66 |tion exi|t.. If|
|00000520| 20 61 20 66 75 6e 63 74 | 69 6f 6e 20 69 73 20 63 | a funct|ion is c|
|00000530| 6f 6d 70 69 6c 65 64 20 | 69 6e 20 73 65 76 65 72 |ompiled |in sever|
|00000540| 61 6c 20 70 69 65 63 65 | 73 2c 20 65 61 63 68 20 |al piece|s, each |
|00000550| 70 69 65 63 65 20 69 73 | 0d 20 20 20 6f 75 74 70 |piece is|. outp|
|00000560| 75 74 20 73 65 70 61 72 | 61 74 65 6c 79 20 77 69 |ut separ|ately wi|
|00000570| 74 68 20 60 66 69 6e 61 | 6c 27 2e 0d 0d 20 20 20 |th `fina|l'... |
|00000580| 53 6f 6d 65 20 6f 70 74 | 69 6d 69 7a 61 74 69 6f |Some opt|imizatio|
|00000590| 6e 73 20 61 72 65 20 61 | 6c 73 6f 20 64 6f 6e 65 |ns are a|lso done|
|000005a0| 20 61 74 20 74 68 69 73 | 20 6c 65 76 65 6c 2e 0d | at this| level..|
|000005b0| 20 20 20 4d 6f 76 65 20 | 69 6e 73 74 72 75 63 74 | Move |instruct|
|000005c0| 69 6f 6e 73 20 74 68 61 | 74 20 77 65 72 65 20 6d |ions tha|t were m|
|000005d0| 61 64 65 20 75 6e 6e 65 | 63 65 73 73 61 72 79 20 |ade unne|cessary |
|000005e0| 62 79 20 67 6f 6f 64 20 | 72 65 67 69 73 74 65 72 |by good |register|
|000005f0| 20 61 6c 6c 6f 63 61 74 | 69 6f 6e 0d 20 20 20 61 | allocat|ion. a|
|00000600| 72 65 20 64 65 74 65 63 | 74 65 64 20 61 6e 64 20 |re detec|ted and |
|00000610| 6f 6d 69 74 74 65 64 20 | 66 72 6f 6d 20 74 68 65 |omitted |from the|
|00000620| 20 6f 75 74 70 75 74 2e | 20 20 28 54 68 6f 75 67 | output.| (Thoug|
|00000630| 68 20 6d 6f 73 74 20 6f | 66 20 74 68 65 73 65 0d |h most o|f these.|
|00000640| 20 20 20 61 72 65 20 72 | 65 6d 6f 76 65 64 20 62 | are r|emoved b|
|00000650| 79 20 74 68 65 20 6c 61 | 73 74 20 6a 75 6d 70 20 |y the la|st jump |
|00000660| 70 61 73 73 2e 29 0d 0d | 20 20 20 49 6e 73 74 72 |pass.)..| Instr|
|00000670| 75 63 74 69 6f 6e 73 20 | 74 6f 20 73 65 74 20 74 |uctions |to set t|
|00000680| 68 65 20 63 6f 6e 64 69 | 74 69 6f 6e 20 63 6f 64 |he condi|tion cod|
|00000690| 65 73 20 61 72 65 20 6f | 6d 69 74 74 65 64 20 77 |es are o|mitted w|
|000006a0| 68 65 6e 20 69 74 20 63 | 61 6e 20 62 65 0d 20 20 |hen it c|an be. |
|000006b0| 20 73 65 65 6e 20 74 68 | 61 74 20 74 68 65 20 63 | seen th|at the c|
|000006c0| 6f 6e 64 69 74 69 6f 6e | 20 63 6f 64 65 73 20 61 |ondition| codes a|
|000006d0| 6c 72 65 61 64 79 20 68 | 61 64 20 74 68 65 20 64 |lready h|ad the d|
|000006e0| 65 73 69 72 65 64 20 76 | 61 6c 75 65 73 2e 0d 0d |esired v|alues...|
|000006f0| 20 20 20 49 6e 20 73 6f | 6d 65 20 63 61 73 65 73 | In so|me cases|
|00000700| 20 69 74 20 69 73 20 73 | 75 66 66 69 63 69 65 6e | it is s|ufficien|
|00000710| 74 20 69 66 20 74 68 65 | 20 69 6e 68 65 72 69 74 |t if the| inherit|
|00000720| 65 64 20 63 6f 6e 64 69 | 74 69 6f 6e 20 63 6f 64 |ed condi|tion cod|
|00000730| 65 73 0d 20 20 20 68 61 | 76 65 20 72 65 6c 61 74 |es. ha|ve relat|
|00000740| 65 64 20 76 61 6c 75 65 | 73 2c 20 62 75 74 20 74 |ed value|s, but t|
|00000750| 68 69 73 20 6d 61 79 20 | 72 65 71 75 69 72 65 20 |his may |require |
|00000760| 74 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 20 69 6e |the foll|owing in|
|00000770| 73 6e 0d 20 20 20 28 74 | 68 65 20 6f 6e 65 20 74 |sn. (t|he one t|
|00000780| 68 61 74 20 74 65 73 74 | 73 20 74 68 65 20 63 6f |hat test|s the co|
|00000790| 6e 64 69 74 69 6f 6e 20 | 63 6f 64 65 73 29 20 74 |ndition |codes) t|
|000007a0| 6f 20 62 65 20 6d 6f 64 | 69 66 69 65 64 2e 0d 0d |o be mod|ified...|
|000007b0| 20 20 20 54 68 65 20 63 | 6f 64 65 20 66 6f 72 20 | The c|ode for |
|000007c0| 74 68 65 20 66 75 6e 63 | 74 69 6f 6e 20 70 72 6f |the func|tion pro|
|000007d0| 6c 6f 67 75 65 20 61 6e | 64 20 65 70 69 6c 6f 67 |logue an|d epilog|
|000007e0| 75 65 20 61 72 65 20 67 | 65 6e 65 72 61 74 65 64 |ue are g|enerated|
|000007f0| 0d 20 20 20 64 69 72 65 | 63 74 6c 79 20 61 73 20 |. dire|ctly as |
|00000800| 61 73 73 65 6d 62 6c 65 | 72 20 63 6f 64 65 20 62 |assemble|r code b|
|00000810| 79 20 74 68 65 20 6d 61 | 63 72 6f 73 20 46 55 4e |y the ma|cros FUN|
|00000820| 43 54 49 4f 4e 5f 50 52 | 4f 4c 4f 47 55 45 20 61 |CTION_PR|OLOGUE a|
|00000830| 6e 64 0d 20 20 20 46 55 | 4e 43 54 49 4f 4e 5f 45 |nd. FU|NCTION_E|
|00000840| 50 49 4c 4f 47 55 45 2e | 20 20 54 68 6f 73 65 20 |PILOGUE.| Those |
|00000850| 69 6e 73 74 72 75 63 74 | 69 6f 6e 73 20 6e 65 76 |instruct|ions nev|
|00000860| 65 72 20 65 78 69 73 74 | 20 61 73 20 72 74 6c 2e |er exist| as rtl.|
|00000870| 20 20 2a 2f 0d 0d 23 69 | 6e 63 6c 75 64 65 20 3c | */..#i|nclude <|
|00000880| 73 74 64 69 6f 2e 68 3e | 0d 23 69 6e 63 6c 75 64 |stdio.h>|.#includ|
|00000890| 65 20 22 63 6f 6e 66 69 | 67 2e 68 22 0d 23 69 6e |e "confi|g.h".#in|
|000008a0| 63 6c 75 64 65 20 22 72 | 74 6c 2e 68 22 0d 23 69 |clude "r|tl.h".#i|
|000008b0| 6e 63 6c 75 64 65 20 22 | 72 65 67 73 2e 68 22 0d |nclude "|regs.h".|
|000008c0| 23 69 6e 63 6c 75 64 65 | 20 22 69 6e 73 6e 2d 63 |#include| "insn-c|
|000008d0| 6f 6e 66 69 67 2e 68 22 | 0d 23 69 6e 63 6c 75 64 |onfig.h"|.#includ|
|000008e0| 65 20 22 72 65 63 6f 67 | 2e 68 22 0d 23 69 6e 63 |e "recog|.h".#inc|
|000008f0| 6c 75 64 65 20 22 63 6f | 6e 64 69 74 69 6f 6e 73 |lude "co|nditions|
|00000900| 2e 68 22 0d 23 69 6e 63 | 6c 75 64 65 20 22 67 64 |.h".#inc|lude "gd|
|00000910| 62 66 69 6c 65 73 2e 68 | 22 0d 23 69 6e 63 6c 75 |bfiles.h|".#inclu|
|00000920| 64 65 20 22 66 6c 61 67 | 73 2e 68 22 0d 23 69 6e |de "flag|s.h".#in|
|00000930| 63 6c 75 64 65 20 22 72 | 65 61 6c 2e 68 22 0d 23 |clude "r|eal.h".#|
|00000940| 69 6e 63 6c 75 64 65 20 | 22 6f 75 74 70 75 74 2e |include |"output.|
|00000950| 68 22 0d 0d 23 69 66 64 | 65 66 20 4d 50 57 0d 23 |h"..#ifd|ef MPW.#|
|00000960| 69 6e 63 6c 75 64 65 20 | 3c 43 75 72 73 6f 72 43 |include |<CursorC|
|00000970| 74 6c 2e 68 3e 0d 23 65 | 6e 64 69 66 0d 0d 2f 2a |tl.h>.#e|ndif../*|
|00000980| 20 47 65 74 20 4e 5f 53 | 4c 49 4e 45 20 61 6e 64 | Get N_S|LINE and|
|00000990| 20 4e 5f 53 4f 4c 20 66 | 72 6f 6d 20 73 74 61 62 | N_SOL f|rom stab|
|000009a0| 2e 68 20 69 66 20 77 65 | 20 63 61 6e 20 65 78 70 |.h if we| can exp|
|000009b0| 65 63 74 20 74 68 65 20 | 66 69 6c 65 20 74 6f 20 |ect the |file to |
|000009c0| 65 78 69 73 74 2e 20 20 | 2a 2f 0d 23 69 66 64 65 |exist. |*/.#ifde|
|000009d0| 66 20 44 42 58 5f 44 45 | 42 55 47 47 49 4e 47 5f |f DBX_DE|BUGGING_|
|000009e0| 49 4e 46 4f 0d 23 69 66 | 64 65 66 20 55 53 47 0d |INFO.#if|def USG.|
|000009f0| 23 69 6e 63 6c 75 64 65 | 20 22 73 74 61 62 2e 68 |#include| "stab.h|
|00000a00| 22 20 20 2f 2a 20 49 66 | 20 64 6f 69 6e 67 20 44 |" /* If| doing D|
|00000a10| 42 58 20 6f 6e 20 73 79 | 73 56 2c 20 75 73 65 20 |BX on sy|sV, use |
|00000a20| 6f 75 72 20 6f 77 6e 20 | 73 74 61 62 2e 68 2e 20 |our own |stab.h. |
|00000a30| 20 2a 2f 0d 23 65 6c 73 | 65 0d 23 69 6e 63 6c 75 | */.#els|e.#inclu|
|00000a40| 64 65 20 3c 73 74 61 62 | 2e 68 3e 20 20 2f 2a 20 |de <stab|.h> /* |
|00000a50| 4f 6e 20 42 53 44 2c 20 | 75 73 65 20 74 68 65 20 |On BSD, |use the |
|00000a60| 73 79 73 74 65 6d 27 73 | 20 73 74 61 62 2e 68 2e |system's| stab.h.|
|00000a70| 20 20 2a 2f 0d 23 65 6e | 64 69 66 20 2f 2a 20 6e | */.#en|dif /* n|
|00000a80| 6f 74 20 55 53 47 20 2a | 2f 0d 23 65 6e 64 69 66 |ot USG *|/.#endif|
|00000a90| 20 2f 2a 20 44 42 58 5f | 44 45 42 55 47 47 49 4e | /* DBX_|DEBUGGIN|
|00000aa0| 47 5f 49 4e 46 4f 20 2a | 2f 0d 0d 2f 2a 20 2e 73 |G_INFO *|/../* .s|
|00000ab0| 74 61 62 64 20 63 6f 64 | 65 20 66 6f 72 20 6c 69 |tabd cod|e for li|
|00000ac0| 6e 65 20 6e 75 6d 62 65 | 72 2e 20 20 2a 2f 0d 23 |ne numbe|r. */.#|
|00000ad0| 69 66 6e 64 65 66 20 4e | 5f 53 4c 49 4e 45 0d 23 |ifndef N|_SLINE.#|
|00000ae0| 64 65 66 69 6e 65 09 4e | 5f 53 4c 49 4e 45 09 30 |define.N|_SLINE.0|
|00000af0| 78 34 34 0d 23 65 6e 64 | 69 66 0d 0d 2f 2a 20 2e |x44.#end|if../* .|
|00000b00| 73 74 61 62 73 20 63 6f | 64 65 20 66 6f 72 20 69 |stabs co|de for i|
|00000b10| 6e 63 6c 75 64 65 64 20 | 66 69 6c 65 20 6e 61 6d |ncluded |file nam|
|00000b20| 65 2e 20 20 2a 2f 0d 23 | 69 66 6e 64 65 66 20 4e |e. */.#|ifndef N|
|00000b30| 5f 53 4f 4c 0d 23 64 65 | 66 69 6e 65 09 4e 5f 53 |_SOL.#de|fine.N_S|
|00000b40| 4f 4c 20 30 78 38 34 0d | 23 65 6e 64 69 66 0d 0d |OL 0x84.|#endif..|
|00000b50| 23 64 65 66 69 6e 65 20 | 6d 69 6e 28 41 2c 42 29 |#define |min(A,B)|
|00000b60| 20 28 28 41 29 20 3c 20 | 28 42 29 20 3f 20 28 41 | ((A) < |(B) ? (A|
|00000b70| 29 20 3a 20 28 42 29 29 | 0d 0d 72 74 78 20 70 65 |) : (B))|..rtx pe|
|00000b80| 65 70 68 6f 6c 65 20 28 | 29 3b 0d 76 6f 69 64 20 |ephole (|);.void |
|00000b90| 6f 75 74 70 75 74 5f 61 | 73 6d 5f 69 6e 73 6e 20 |output_a|sm_insn |
|00000ba0| 28 29 3b 0d 72 74 78 20 | 61 6c 74 65 72 5f 73 75 |();.rtx |alter_su|
|00000bb0| 62 72 65 67 20 28 29 3b | 0d 73 74 61 74 69 63 20 |breg ();|.static |
|00000bc0| 69 6e 74 20 61 6c 74 65 | 72 5f 63 6f 6e 64 20 28 |int alte|r_cond (|
|00000bd0| 29 3b 0d 76 6f 69 64 20 | 6f 75 74 70 75 74 5f 61 |);.void |output_a|
|00000be0| 73 6d 5f 6c 61 62 65 6c | 20 28 29 3b 0d 73 74 61 |sm_label| ();.sta|
|00000bf0| 74 69 63 20 76 6f 69 64 | 20 6f 75 74 70 75 74 5f |tic void| output_|
|00000c00| 6f 70 65 72 61 6e 64 20 | 28 29 3b 0d 76 6f 69 64 |operand |();.void|
|00000c10| 20 6f 75 74 70 75 74 5f | 61 64 64 72 65 73 73 20 | output_|address |
|00000c20| 28 29 3b 0d 76 6f 69 64 | 20 6f 75 74 70 75 74 5f |();.void| output_|
|00000c30| 61 64 64 72 5f 63 6f 6e | 73 74 20 28 29 3b 0d 73 |addr_con|st ();.s|
|00000c40| 74 61 74 69 63 20 76 6f | 69 64 20 6f 75 74 70 75 |tatic vo|id outpu|
|00000c50| 74 5f 73 6f 75 72 63 65 | 5f 6c 69 6e 65 20 28 29 |t_source|_line ()|
|00000c60| 3b 0d 72 74 78 20 66 69 | 6e 61 6c 5f 73 63 61 6e |;.rtx fi|nal_scan|
|00000c70| 5f 69 6e 73 6e 20 28 29 | 3b 0d 0d 2f 2a 20 74 68 |_insn ()|;../* th|
|00000c80| 65 20 73 64 62 20 64 65 | 62 75 67 67 65 72 20 6e |e sdb de|bugger n|
|00000c90| 65 65 64 73 20 74 68 65 | 20 6c 69 6e 65 20 67 69 |eeds the| line gi|
|00000ca0| 76 65 6e 20 61 73 20 61 | 6e 20 6f 66 66 73 65 74 |ven as a|n offset|
|00000cb0| 20 66 72 6f 6d 20 74 68 | 65 20 62 65 67 69 6e 6e | from th|e beginn|
|00000cc0| 69 6e 67 0d 20 20 20 6f | 66 20 74 68 65 20 63 75 |ing. o|f the cu|
|00000cd0| 72 72 65 6e 74 20 66 75 | 6e 63 74 69 6f 6e 20 2d |rrent fu|nction -|
|00000ce0| 77 66 73 2a 2f 0d 0d 65 | 78 74 65 72 6e 20 69 6e |wfs*/..e|xtern in|
|00000cf0| 74 20 73 64 62 5f 62 65 | 67 69 6e 5f 66 75 6e 63 |t sdb_be|gin_func|
|00000d00| 74 69 6f 6e 5f 6c 69 6e | 65 3b 0d 0d 2f 2a 20 4c |tion_lin|e;../* L|
|00000d10| 69 6e 65 20 6e 75 6d 62 | 65 72 20 6f 66 20 6c 61 |ine numb|er of la|
|00000d20| 73 74 20 4e 4f 54 45 2e | 20 20 2a 2f 0d 73 74 61 |st NOTE.| */.sta|
|00000d30| 74 69 63 20 69 6e 74 20 | 6c 61 73 74 5f 6c 69 6e |tic int |last_lin|
|00000d40| 65 6e 75 6d 3b 0d 0d 2f | 2a 20 4e 75 6d 62 65 72 |enum;../|* Number|
|00000d50| 20 6f 66 20 62 61 73 69 | 63 20 62 6c 6f 63 6b 73 | of basi|c blocks|
|00000d60| 20 73 65 65 6e 20 73 6f | 20 66 61 72 3b 0d 20 20 | seen so| far;. |
|00000d70| 20 75 73 65 64 20 69 66 | 20 70 72 6f 66 69 6c 65 | used if| profile|
|00000d80| 5f 62 6c 6f 63 6b 5f 66 | 6c 61 67 20 69 73 20 73 |_block_f|lag is s|
|00000d90| 65 74 2e 20 20 2a 2f 0d | 73 74 61 74 69 63 20 69 |et. */.|static i|
|00000da0| 6e 74 20 63 6f 75 6e 74 | 5f 62 61 73 69 63 5f 62 |nt count|_basic_b|
|00000db0| 6c 6f 63 6b 73 3b 0d 0d | 2f 2a 20 4e 6f 6e 7a 65 |locks;..|/* Nonze|
|00000dc0| 72 6f 20 77 68 69 6c 65 | 20 6f 75 74 70 75 74 74 |ro while| outputt|
|00000dd0| 69 6e 67 20 61 6e 20 60 | 61 73 6d 27 20 77 69 74 |ing an `|asm' wit|
|00000de0| 68 20 6f 70 65 72 61 6e | 64 73 2e 0d 20 20 20 54 |h operan|ds.. T|
|00000df0| 68 69 73 20 6d 65 61 6e | 73 20 74 68 61 74 20 69 |his mean|s that i|
|00000e00| 6e 63 6f 6e 73 69 73 74 | 65 6e 63 69 65 73 20 61 |nconsist|encies a|
|00000e10| 72 65 20 74 68 65 20 75 | 73 65 72 27 73 20 66 61 |re the u|ser's fa|
|00000e20| 75 6c 74 2c 20 73 6f 20 | 64 6f 6e 27 74 20 61 62 |ult, so |don't ab|
|00000e30| 6f 72 74 2e 0d 20 20 20 | 54 68 65 20 70 72 65 63 |ort.. |The prec|
|00000e40| 69 73 65 20 76 61 6c 75 | 65 20 69 73 20 74 68 65 |ise valu|e is the|
|00000e50| 20 69 6e 73 6e 20 62 65 | 69 6e 67 20 6f 75 74 70 | insn be|ing outp|
|00000e60| 75 74 2c 20 74 6f 20 70 | 61 73 73 20 74 6f 20 65 |ut, to p|ass to e|
|00000e70| 72 72 6f 72 5f 66 6f 72 | 5f 61 73 6d 2e 20 20 2a |rror_for|_asm. *|
|00000e80| 2f 0d 73 74 61 74 69 63 | 20 72 74 78 20 74 68 69 |/.static| rtx thi|
|00000e90| 73 5f 69 73 5f 61 73 6d | 5f 6f 70 65 72 61 6e 64 |s_is_asm|_operand|
|00000ea0| 73 3b 0d 0d 2f 2a 20 4e | 75 6d 62 65 72 20 6f 66 |s;../* N|umber of|
|00000eb0| 20 6f 70 65 72 61 6e 64 | 73 20 6f 66 20 74 68 69 | operand|s of thi|
|00000ec0| 73 20 69 6e 73 6e 2c 20 | 66 6f 72 20 61 6e 20 60 |s insn, |for an `|
|00000ed0| 61 73 6d 27 20 77 69 74 | 68 20 6f 70 65 72 61 6e |asm' wit|h operan|
|00000ee0| 64 73 2e 20 20 2a 2f 0d | 73 74 61 74 69 63 20 69 |ds. */.|static i|
|00000ef0| 6e 74 20 69 6e 73 6e 5f | 6e 6f 70 65 72 61 6e 64 |nt insn_|noperand|
|00000f00| 73 3b 0d 0d 2f 2a 20 46 | 69 6c 65 20 69 6e 20 77 |s;../* F|ile in w|
|00000f10| 68 69 63 68 20 61 73 73 | 65 6d 62 6c 65 72 20 63 |hich ass|embler c|
|00000f20| 6f 64 65 20 69 73 20 62 | 65 69 6e 67 20 77 72 69 |ode is b|eing wri|
|00000f30| 74 74 65 6e 2e 20 20 2a | 2f 0d 0d 65 78 74 65 72 |tten. *|/..exter|
|00000f40| 6e 20 46 49 4c 45 20 2a | 61 73 6d 5f 6f 75 74 5f |n FILE *|asm_out_|
|00000f50| 66 69 6c 65 3b 0d 0d 2f | 2a 20 43 6f 6d 70 61 72 |file;../|* Compar|
|00000f60| 65 20 6f 70 74 69 6d 69 | 7a 61 74 69 6f 6e 20 66 |e optimi|zation f|
|00000f70| 6c 61 67 2e 20 2a 2f 0d | 0d 73 74 61 74 69 63 20 |lag. */.|.static |
|00000f80| 72 74 78 20 6c 61 73 74 | 5f 69 67 6e 6f 72 65 64 |rtx last|_ignored|
|00000f90| 5f 63 6f 6d 70 61 72 65 | 20 3d 20 30 3b 0d 0d 2f |_compare| = 0;../|
|00000fa0| 2a 20 46 6c 61 67 20 69 | 6e 64 69 63 61 74 69 6e |* Flag i|ndicatin|
|00000fb0| 67 20 74 68 69 73 20 69 | 6e 73 6e 20 69 73 20 74 |g this i|nsn is t|
|00000fc0| 68 65 20 73 74 61 72 74 | 20 6f 66 20 61 20 6e 65 |he start| of a ne|
|00000fd0| 77 20 62 61 73 69 63 20 | 62 6c 6f 63 6b 2e 20 2a |w basic |block. *|
|00000fe0| 2f 0d 0d 73 74 61 74 69 | 63 20 69 6e 74 20 6e 65 |/..stati|c int ne|
|00000ff0| 77 5f 62 6c 6f 63 6b 20 | 3d 20 31 3b 0d 0d 2f 2a |w_block |= 1;../*|
|00001000| 20 41 6c 6c 20 74 68 65 | 20 73 79 6d 62 6f 6c 2d | All the| symbol-|
|00001010| 62 6c 6f 63 6b 73 20 28 | 6c 65 76 65 6c 73 20 6f |blocks (|levels o|
|00001020| 66 20 73 63 6f 70 69 6e | 67 29 20 69 6e 20 74 68 |f scopin|g) in th|
|00001030| 65 20 63 6f 6d 70 69 6c | 61 74 69 6f 6e 0d 20 20 |e compil|ation. |
|00001040| 20 61 72 65 20 61 73 73 | 69 67 6e 65 64 20 73 65 | are ass|igned se|
|00001050| 71 75 65 6e 63 65 20 6e | 75 6d 62 65 72 73 20 69 |quence n|umbers i|
|00001060| 6e 20 6f 72 64 65 72 20 | 6f 66 20 61 70 70 65 61 |n order |of appea|
|00001070| 72 61 6e 63 65 20 6f 66 | 20 74 68 65 0d 20 20 20 |rance of| the. |
|00001080| 62 65 67 69 6e 6e 69 6e | 67 73 20 6f 66 20 74 68 |beginnin|gs of th|
|00001090| 65 20 73 79 6d 62 6f 6c | 2d 62 6c 6f 63 6b 73 2e |e symbol|-blocks.|
|000010a0| 20 20 42 6f 74 68 20 66 | 69 6e 61 6c 20 61 6e 64 | Both f|inal and|
|000010b0| 20 64 62 78 6f 75 74 20 | 64 6f 20 74 68 69 73 2c | dbxout |do this,|
|000010c0| 0d 20 20 20 61 6e 64 20 | 61 73 73 75 6d 65 20 74 |. and |assume t|
|000010d0| 68 61 74 20 74 68 65 79 | 20 77 69 6c 6c 20 62 6f |hat they| will bo|
|000010e0| 74 68 20 67 69 76 65 20 | 74 68 65 20 73 61 6d 65 |th give |the same|
|000010f0| 20 6e 75 6d 62 65 72 20 | 74 6f 20 65 61 63 68 20 | number |to each |
|00001100| 62 6c 6f 63 6b 2e 0d 20 | 20 20 46 69 6e 61 6c 20 |block.. | Final |
|00001110| 75 73 65 73 20 74 68 65 | 73 65 20 73 65 71 75 65 |uses the|se seque|
|00001120| 6e 63 65 20 6e 75 6d 62 | 65 72 73 20 74 6f 20 67 |nce numb|ers to g|
|00001130| 65 6e 65 72 61 74 65 20 | 61 73 73 65 6d 62 6c 65 |enerate |assemble|
|00001140| 72 20 6c 61 62 65 6c 20 | 6e 61 6d 65 73 0d 20 20 |r label |names. |
|00001150| 20 4c 42 42 6e 6e 6e 20 | 61 6e 64 20 4c 42 45 6e | LBBnnn |and LBEn|
|00001160| 6e 6e 20 66 6f 72 20 74 | 68 65 20 62 65 67 69 6e |nn for t|he begin|
|00001170| 6e 69 6e 67 20 61 6e 64 | 20 65 6e 64 20 6f 66 20 |ning and| end of |
|00001180| 74 68 65 20 73 79 6d 62 | 6f 6c 2d 62 6c 6f 63 6b |the symb|ol-block|
|00001190| 2e 0d 20 20 20 44 62 78 | 6f 75 74 20 75 73 65 73 |.. Dbx|out uses|
|000011a0| 20 74 68 65 20 73 65 71 | 75 65 6e 63 65 20 6e 75 | the seq|uence nu|
|000011b0| 6e 62 65 72 73 20 74 6f | 20 67 65 6e 65 72 61 74 |nbers to| generat|
|000011c0| 65 20 72 65 66 65 72 65 | 6e 63 65 73 20 74 6f 20 |e refere|nces to |
|000011d0| 74 68 65 20 73 61 6d 65 | 20 6c 61 62 65 6c 73 0d |the same| labels.|
|000011e0| 20 20 20 66 72 6f 6d 20 | 74 68 65 20 64 62 78 20 | from |the dbx |
|000011f0| 64 65 62 75 67 67 69 6e | 67 20 69 6e 66 6f 72 6d |debuggin|g inform|
|00001200| 61 74 69 6f 6e 2e 0d 0d | 20 20 20 53 64 62 20 72 |ation...| Sdb r|
|00001210| 65 63 6f 72 64 73 20 74 | 68 69 73 20 6c 65 76 65 |ecords t|his leve|
|00001220| 6c 20 61 74 20 74 68 65 | 20 62 65 67 69 6e 6e 69 |l at the| beginni|
|00001230| 6e 67 0d 20 20 20 6f 66 | 20 65 61 63 68 20 66 75 |ng. of| each fu|
|00001240| 6e 63 74 69 6f 6e 2c 20 | 73 6f 20 74 68 61 74 20 |nction, |so that |
|00001250| 77 68 65 6e 20 69 74 20 | 72 65 63 75 72 73 65 73 |when it |recurses|
|00001260| 20 64 6f 77 6e 20 74 68 | 65 20 64 65 63 6c 61 72 | down th|e declar|
|00001270| 61 74 69 6f 6e 73 2c 20 | 69 74 20 6d 61 79 0d 20 |ations, |it may. |
|00001280| 20 20 66 69 6e 64 20 74 | 68 65 20 63 75 72 72 65 | find t|he curre|
|00001290| 6e 74 20 6c 65 76 65 6c | 2c 20 73 69 6e 63 65 20 |nt level|, since |
|000012a0| 69 74 20 6f 75 74 70 75 | 74 73 20 74 68 65 20 62 |it outpu|ts the b|
|000012b0| 6c 6f 63 6b 20 62 65 67 | 69 6e 6e 69 6e 67 20 61 |lock beg|inning a|
|000012c0| 6e 64 20 65 6e 64 69 6e | 67 73 0d 20 20 20 61 74 |nd endin|gs. at|
|000012d0| 20 74 68 65 20 70 6f 69 | 6e 74 20 69 6e 20 74 68 | the poi|nt in th|
|000012e0| 65 20 61 73 6d 20 66 69 | 6c 65 2c 20 77 68 65 72 |e asm fi|le, wher|
|000012f0| 65 20 74 68 65 20 62 6c | 6f 63 6b 73 20 77 6f 75 |e the bl|ocks wou|
|00001300| 6c 64 20 62 65 67 69 6e | 20 61 6e 64 20 65 6e 64 |ld begin| and end|
|00001310| 2e 20 20 2a 2f 0d 0d 69 | 6e 74 20 6e 65 78 74 5f |. */..i|nt next_|
|00001320| 62 6c 6f 63 6b 5f 69 6e | 64 65 78 3b 0d 0d 2f 2a |block_in|dex;../*|
|00001330| 20 43 68 61 69 6e 20 6f | 66 20 61 6c 6c 20 60 73 | Chain o|f all `s|
|00001340| 74 72 75 63 74 20 67 64 | 62 66 69 6c 65 27 73 2e |truct gd|bfile's.|
|00001350| 20 20 2a 2f 0d 0d 73 74 | 72 75 63 74 20 67 64 62 | */..st|ruct gdb|
|00001360| 66 69 6c 65 20 2a 67 64 | 62 66 69 6c 65 73 3b 0d |file *gd|bfiles;.|
|00001370| 0d 2f 2a 20 60 73 74 72 | 75 63 74 20 67 64 62 66 |./* `str|uct gdbf|
|00001380| 69 6c 65 27 20 66 6f 72 | 20 74 68 65 20 6c 61 73 |ile' for| the las|
|00001390| 74 20 66 69 6c 65 20 77 | 65 20 77 72 6f 74 65 20 |t file w|e wrote |
|000013a0| 61 20 6c 69 6e 65 20 6e | 75 6d 62 65 72 20 66 6f |a line n|umber fo|
|000013b0| 72 2e 20 20 2a 2f 0d 0d | 73 74 61 74 69 63 20 73 |r. */..|static s|
|000013c0| 74 72 75 63 74 20 67 64 | 62 66 69 6c 65 20 2a 63 |truct gd|bfile *c|
|000013d0| 75 72 72 65 6e 74 5f 67 | 64 62 66 69 6c 65 3b 0d |urrent_g|dbfile;.|
|000013e0| 0d 2f 2a 20 46 69 6c 65 | 6e 75 6d 20 74 6f 20 61 |./* File|num to a|
|000013f0| 73 73 69 67 6e 20 74 6f | 20 74 68 65 20 6e 65 78 |ssign to| the nex|
|00001400| 74 20 64 69 73 74 69 6e | 63 74 20 73 6f 75 72 63 |t distin|ct sourc|
|00001410| 65 20 66 69 6c 65 20 65 | 6e 63 6f 75 6e 74 65 72 |e file e|ncounter|
|00001420| 65 64 2e 20 20 2a 2f 0d | 0d 73 74 61 74 69 63 20 |ed. */.|.static |
|00001430| 69 6e 74 20 6e 65 78 74 | 5f 67 64 62 5f 66 69 6c |int next|_gdb_fil|
|00001440| 65 6e 75 6d 3b 0d 0d 2f | 2a 20 54 68 69 73 20 76 |enum;../|* This v|
|00001450| 61 72 69 61 62 6c 65 20 | 63 6f 6e 74 61 69 6e 73 |ariable |contains|
|00001460| 20 6d 61 63 68 69 6e 65 | 2d 64 65 70 65 6e 64 65 | machine|-depende|
|00001470| 6e 74 20 66 6c 61 67 73 | 20 28 64 65 66 69 6e 65 |nt flags| (define|
|00001480| 64 20 69 6e 20 74 6d 2d | 2e 2e 2e 68 29 0d 20 20 |d in tm-|...h). |
|00001490| 20 73 65 74 20 61 6e 64 | 20 65 78 61 6d 69 6e 65 | set and| examine|
|000014a0| 64 20 62 79 20 6f 75 74 | 70 75 74 20 72 6f 75 74 |d by out|put rout|
|000014b0| 69 6e 65 73 0d 20 20 20 | 74 68 61 74 20 64 65 73 |ines. |that des|
|000014c0| 63 72 69 62 65 20 68 6f | 77 20 74 6f 20 69 6e 74 |cribe ho|w to int|
|000014d0| 65 72 70 72 65 74 20 74 | 68 65 20 63 6f 6e 64 69 |erpret t|he condi|
|000014e0| 74 69 6f 6e 20 63 6f 64 | 65 73 20 70 72 6f 70 65 |tion cod|es prope|
|000014f0| 72 6c 79 2e 20 20 2a 2f | 0d 0d 43 43 5f 53 54 41 |rly. */|..CC_STA|
|00001500| 54 55 53 20 63 63 5f 73 | 74 61 74 75 73 3b 0d 0d |TUS cc_s|tatus;..|
|00001510| 2f 2a 20 44 75 72 69 6e | 67 20 6f 75 74 70 75 74 |/* Durin|g output|
|00001520| 20 6f 66 20 61 6e 20 69 | 6e 73 6e 2c 20 74 68 69 | of an i|nsn, thi|
|00001530| 73 20 63 6f 6e 74 61 69 | 6e 73 20 61 20 63 6f 70 |s contai|ns a cop|
|00001540| 79 20 6f 66 20 63 63 5f | 73 74 61 74 75 73 0d 20 |y of cc_|status. |
|00001550| 20 20 66 72 6f 6d 20 62 | 65 66 6f 72 65 20 74 68 | from b|efore th|
|00001560| 65 20 69 6e 73 6e 2e 20 | 20 2a 2f 0d 0d 43 43 5f |e insn. | */..CC_|
|00001570| 53 54 41 54 55 53 20 63 | 63 5f 70 72 65 76 5f 73 |STATUS c|c_prev_s|
|00001580| 74 61 74 75 73 3b 0d 0d | 2f 2a 20 4c 61 73 74 20 |tatus;..|/* Last |
|00001590| 73 6f 75 72 63 65 20 66 | 69 6c 65 20 6e 61 6d 65 |source f|ile name|
|000015a0| 20 6d 65 6e 74 69 6f 6e | 65 64 20 69 6e 20 61 20 | mention|ed in a |
|000015b0| 4e 4f 54 45 20 69 6e 73 | 6e 2e 20 20 2a 2f 0d 0d |NOTE ins|n. */..|
|000015c0| 73 74 61 74 69 63 20 63 | 68 61 72 20 2a 6c 61 73 |static c|har *las|
|000015d0| 74 66 69 6c 65 3b 0d 0d | 2f 2a 20 49 6e 64 65 78 |tfile;..|/* Index|
|000015e0| 65 64 20 62 79 20 68 61 | 72 64 77 61 72 65 20 72 |ed by ha|rdware r|
|000015f0| 65 67 20 6e 75 6d 62 65 | 72 2c 20 69 73 20 31 20 |eg numbe|r, is 1 |
|00001600| 69 66 20 74 68 61 74 20 | 72 65 67 69 73 74 65 72 |if that |register|
|00001610| 20 69 73 20 65 76 65 72 | 0d 20 20 20 75 73 65 64 | is ever|. used|
|00001620| 20 69 6e 20 74 68 65 20 | 63 75 72 72 65 6e 74 20 | in the |current |
|00001630| 66 75 6e 63 74 69 6f 6e | 2e 0d 0d 20 20 20 49 6e |function|... In|
|00001640| 20 6c 69 66 65 5f 61 6e | 61 6c 79 73 69 73 2c 20 | life_an|alysis, |
|00001650| 6f 72 20 69 6e 20 73 74 | 75 70 69 64 5f 6c 69 66 |or in st|upid_lif|
|00001660| 65 5f 61 6e 61 6c 79 73 | 69 73 2c 20 74 68 69 73 |e_analys|is, this|
|00001670| 20 69 73 20 73 65 74 0d | 20 20 20 75 70 20 74 6f | is set.| up to|
|00001680| 20 72 65 63 6f 72 64 20 | 74 68 65 20 68 61 72 64 | record |the hard|
|00001690| 20 72 65 67 73 20 75 73 | 65 64 20 65 78 70 6c 69 | regs us|ed expli|
|000016a0| 63 69 74 6c 79 2e 20 20 | 52 65 6c 6f 61 64 20 61 |citly. |Reload a|
|000016b0| 64 64 73 0d 20 20 20 69 | 6e 20 74 68 65 20 68 61 |dds. i|n the ha|
|000016c0| 72 64 20 72 65 67 73 20 | 75 73 65 64 20 66 6f 72 |rd regs |used for|
|000016d0| 20 68 6f 6c 64 69 6e 67 | 20 70 73 65 75 64 6f 20 | holding| pseudo |
|000016e0| 72 65 67 73 2e 20 20 46 | 69 6e 61 6c 20 75 73 65 |regs. F|inal use|
|000016f0| 73 0d 20 20 20 69 74 20 | 74 6f 20 67 65 6e 65 72 |s. it |to gener|
|00001700| 61 74 65 20 74 68 65 20 | 63 6f 64 65 20 69 6e 20 |ate the |code in |
|00001710| 74 68 65 20 66 75 6e 63 | 74 69 6f 6e 20 70 72 6f |the func|tion pro|
|00001720| 6c 6f 67 75 65 20 61 6e | 64 20 65 70 69 6c 6f 67 |logue an|d epilog|
|00001730| 75 65 0d 20 20 20 74 6f | 20 73 61 76 65 20 61 6e |ue. to| save an|
|00001740| 64 20 72 65 73 74 6f 72 | 65 20 72 65 67 69 73 74 |d restor|e regist|
|00001750| 65 72 73 20 61 73 20 6e | 65 65 64 65 64 2e 20 20 |ers as n|eeded. |
|00001760| 2a 2f 0d 0d 63 68 61 72 | 20 72 65 67 73 5f 65 76 |*/..char| regs_ev|
|00001770| 65 72 5f 6c 69 76 65 5b | 46 49 52 53 54 5f 50 53 |er_live[|FIRST_PS|
|00001780| 45 55 44 4f 5f 52 45 47 | 49 53 54 45 52 5d 3b 0d |EUDO_REG|ISTER];.|
|00001790| 0d 2f 2a 20 4e 6f 6e 7a | 65 72 6f 20 6d 65 61 6e |./* Nonz|ero mean|
|000017a0| 73 20 63 75 72 72 65 6e | 74 20 66 75 6e 63 74 69 |s curren|t functi|
|000017b0| 6f 6e 20 6d 75 73 74 20 | 62 65 20 67 69 76 65 6e |on must |be given|
|000017c0| 20 61 20 66 72 61 6d 65 | 20 70 6f 69 6e 74 65 72 | a frame| pointer|
|000017d0| 2e 0d 20 20 20 53 65 74 | 20 69 6e 20 73 74 6d 74 |.. Set| in stmt|
|000017e0| 2e 63 20 69 66 20 61 6e | 79 74 68 69 6e 67 20 69 |.c if an|ything i|
|000017f0| 73 20 61 6c 6c 6f 63 61 | 74 65 64 20 6f 6e 20 74 |s alloca|ted on t|
|00001800| 68 65 20 73 74 61 63 6b | 20 74 68 65 72 65 2e 0d |he stack| there..|
|00001810| 20 20 20 53 65 74 20 69 | 6e 20 72 65 6c 6f 61 64 | Set i|n reload|
|00001820| 31 2e 63 20 69 66 20 61 | 6e 79 74 68 69 6e 67 20 |1.c if a|nything |
|00001830| 69 73 20 61 6c 6c 6f 63 | 61 74 65 64 20 6f 6e 20 |is alloc|ated on |
|00001840| 74 68 65 20 73 74 61 63 | 6b 20 74 68 65 72 65 2e |the stac|k there.|
|00001850| 20 20 2a 2f 0d 0d 69 6e | 74 20 66 72 61 6d 65 5f | */..in|t frame_|
|00001860| 70 6f 69 6e 74 65 72 5f | 6e 65 65 64 65 64 3b 0d |pointer_|needed;.|
|00001870| 0d 2f 2a 20 41 73 73 69 | 67 6e 20 75 6e 69 71 75 |./* Assi|gn uniqu|
|00001880| 65 20 6e 75 6d 62 65 72 | 73 20 74 6f 20 6c 61 62 |e number|s to lab|
|00001890| 65 6c 73 20 67 65 6e 65 | 72 61 74 65 64 20 66 6f |els gene|rated fo|
|000018a0| 72 20 70 72 6f 66 69 6c | 69 6e 67 2e 20 20 2a 2f |r profil|ing. */|
|000018b0| 0d 0d 69 6e 74 20 70 72 | 6f 66 69 6c 65 5f 6c 61 |..int pr|ofile_la|
|000018c0| 62 65 6c 5f 6e 6f 3b 0d | 0d 2f 2a 20 4c 65 6e 67 |bel_no;.|./* Leng|
|000018d0| 74 68 20 73 6f 20 66 61 | 72 20 61 6c 6c 6f 63 61 |th so fa|r alloca|
|000018e0| 74 65 64 20 69 6e 20 50 | 45 4e 44 49 4e 47 5f 42 |ted in P|ENDING_B|
|000018f0| 4c 4f 43 4b 53 2e 20 20 | 2a 2f 0d 0d 73 74 61 74 |LOCKS. |*/..stat|
|00001900| 69 63 20 69 6e 74 20 6d | 61 78 5f 62 6c 6f 63 6b |ic int m|ax_block|
|00001910| 5f 64 65 70 74 68 3b 0d | 0d 2f 2a 20 53 74 61 63 |_depth;.|./* Stac|
|00001920| 6b 20 6f 66 20 73 65 71 | 75 65 6e 63 65 20 6e 75 |k of seq|uence nu|
|00001930| 6d 62 65 72 73 20 6f 66 | 20 73 79 6d 62 6f 6c 2d |mbers of| symbol-|
|00001940| 62 6c 6f 63 6b 73 20 6f | 66 20 77 68 69 63 68 20 |blocks o|f which |
|00001950| 77 65 20 68 61 76 65 20 | 73 65 65 6e 20 74 68 65 |we have |seen the|
|00001960| 0d 20 20 20 62 65 67 69 | 6e 6e 69 6e 67 20 62 75 |. begi|nning bu|
|00001970| 74 20 6e 6f 74 20 79 65 | 74 20 74 68 65 20 65 6e |t not ye|t the en|
|00001980| 64 2e 20 20 53 65 71 75 | 65 6e 63 65 20 6e 75 6d |d. Sequ|ence num|
|00001990| 62 65 72 73 20 61 72 65 | 20 61 73 73 69 67 6e 65 |bers are| assigne|
|000019a0| 64 20 61 74 0d 20 20 20 | 74 68 65 20 62 65 67 69 |d at. |the begi|
|000019b0| 6e 6e 69 6e 67 3b 20 74 | 68 69 73 20 73 74 61 63 |nning; t|his stac|
|000019c0| 6b 20 61 6c 6c 6f 77 73 | 20 75 73 20 74 6f 20 66 |k allows| us to f|
|000019d0| 69 6e 64 20 74 68 65 20 | 73 65 71 75 65 6e 63 65 |ind the |sequence|
|000019e0| 20 6e 75 6d 62 65 72 0d | 20 20 20 6f 66 20 61 20 | number.| of a |
|000019f0| 62 6c 6f 63 6b 20 74 68 | 61 74 20 69 73 20 65 6e |block th|at is en|
|00001a00| 64 69 6e 67 2e 20 20 2a | 2f 0d 0d 73 74 61 74 69 |ding. *|/..stati|
|00001a10| 63 20 69 6e 74 20 2a 70 | 65 6e 64 69 6e 67 5f 62 |c int *p|ending_b|
|00001a20| 6c 6f 63 6b 73 3b 0d 0d | 2f 2a 20 4e 75 6d 62 65 |locks;..|/* Numbe|
|00001a30| 72 20 6f 66 20 65 6c 65 | 6d 65 6e 74 73 20 63 75 |r of ele|ments cu|
|00001a40| 72 72 65 6e 74 6c 79 20 | 69 6e 20 75 73 65 20 69 |rrently |in use i|
|00001a50| 6e 20 50 45 4e 44 49 4e | 47 5f 42 4c 4f 43 4b 53 |n PENDIN|G_BLOCKS|
|00001a60| 2e 20 20 2a 2f 0d 0d 73 | 74 61 74 69 63 20 69 6e |. */..s|tatic in|
|00001a70| 74 20 62 6c 6f 63 6b 5f | 64 65 70 74 68 3b 0d 0d |t block_|depth;..|
|00001a80| 2f 2a 20 4e 6f 6e 7a 65 | 72 6f 20 69 66 20 68 61 |/* Nonze|ro if ha|
|00001a90| 76 65 20 65 6e 61 62 6c | 65 64 20 41 50 50 20 70 |ve enabl|ed APP p|
|00001aa0| 72 6f 63 65 73 73 69 6e | 67 20 6f 66 20 6f 75 72 |rocessin|g of our|
|00001ab0| 20 61 73 73 65 6d 62 6c | 65 72 20 6f 75 74 70 75 | assembl|er outpu|
|00001ac0| 74 2e 20 20 2a 2f 0d 0d | 73 74 61 74 69 63 20 69 |t. */..|static i|
|00001ad0| 6e 74 20 61 70 70 5f 6f | 6e 3b 0d 0d 2f 2a 20 49 |nt app_o|n;../* I|
|00001ae0| 66 20 77 65 20 61 72 65 | 20 6f 75 74 70 75 74 74 |f we are| outputt|
|00001af0| 69 6e 67 20 61 6e 20 69 | 6e 73 6e 20 73 65 71 75 |ing an i|nsn sequ|
|00001b00| 65 6e 63 65 2c 20 74 68 | 69 73 20 63 6f 6e 74 61 |ence, th|is conta|
|00001b10| 69 6e 73 20 74 68 65 20 | 73 65 71 75 65 6e 63 65 |ins the |sequence|
|00001b20| 20 72 74 78 2e 0d 20 20 | 20 5a 65 72 6f 20 6f 74 | rtx.. | Zero ot|
|00001b30| 68 65 72 77 69 73 65 2e | 20 20 2a 2f 0d 0d 72 74 |herwise.| */..rt|
|00001b40| 78 20 66 69 6e 61 6c 5f | 73 65 71 75 65 6e 63 65 |x final_|sequence|
|00001b50| 3b 0d 0d 23 69 66 64 65 | 66 20 4d 50 57 0d 73 74 |;..#ifde|f MPW.st|
|00001b60| 61 74 69 63 20 69 6e 74 | 20 63 75 72 73 6f 72 5f |atic int| cursor_|
|00001b70| 63 6f 75 6e 74 3b 0d 23 | 65 6e 64 69 66 0d 0c 0d |count;.#|endif...|
|00001b80| 2f 2a 20 49 6e 69 74 69 | 61 6c 69 7a 65 20 64 61 |/* Initi|alize da|
|00001b90| 74 61 20 69 6e 20 66 69 | 6e 61 6c 20 61 74 20 74 |ta in fi|nal at t|
|00001ba0| 68 65 20 62 65 67 69 6e | 6e 69 6e 67 20 6f 66 20 |he begin|ning of |
|00001bb0| 61 20 63 6f 6d 70 69 6c | 61 74 69 6f 6e 2e 20 20 |a compil|ation. |
|00001bc0| 2a 2f 0d 0d 76 6f 69 64 | 0d 69 6e 69 74 5f 66 69 |*/..void|.init_fi|
|00001bd0| 6e 61 6c 20 28 66 69 6c | 65 6e 61 6d 65 29 0d 20 |nal (fil|ename). |
|00001be0| 20 20 20 20 63 68 61 72 | 20 2a 66 69 6c 65 6e 61 | char| *filena|
|00001bf0| 6d 65 3b 0d 7b 0d 20 20 | 6e 65 78 74 5f 62 6c 6f |me;.{. |next_blo|
|00001c00| 63 6b 5f 69 6e 64 65 78 | 20 3d 20 32 3b 0d 20 20 |ck_index| = 2;. |
|00001c10| 6c 61 73 74 66 69 6c 65 | 20 3d 20 66 69 6c 65 6e |lastfile| = filen|
|00001c20| 61 6d 65 3b 0d 20 20 61 | 70 70 5f 6f 6e 20 3d 20 |ame;. a|pp_on = |
|00001c30| 30 3b 0d 20 20 6d 61 78 | 5f 62 6c 6f 63 6b 5f 64 |0;. max|_block_d|
|00001c40| 65 70 74 68 20 3d 20 32 | 30 3b 0d 20 20 70 65 6e |epth = 2|0;. pen|
|00001c50| 64 69 6e 67 5f 62 6c 6f | 63 6b 73 20 3d 20 28 69 |ding_blo|cks = (i|
|00001c60| 6e 74 20 2a 29 20 78 6d | 61 6c 6c 6f 63 20 28 32 |nt *) xm|alloc (2|
|00001c70| 30 20 2a 20 73 69 7a 65 | 6f 66 20 2a 70 65 6e 64 |0 * size|of *pend|
|00001c80| 69 6e 67 5f 62 6c 6f 63 | 6b 73 29 3b 0d 20 20 67 |ing_bloc|ks);. g|
|00001c90| 64 62 66 69 6c 65 73 20 | 3d 20 30 3b 0d 20 20 6e |dbfiles |= 0;. n|
|00001ca0| 65 78 74 5f 67 64 62 5f | 66 69 6c 65 6e 75 6d 20 |ext_gdb_|filenum |
|00001cb0| 3d 20 30 3b 0d 20 20 66 | 69 6e 61 6c 5f 73 65 71 |= 0;. f|inal_seq|
|00001cc0| 75 65 6e 63 65 20 3d 20 | 30 3b 0d 23 69 66 64 65 |uence = |0;.#ifde|
|00001cd0| 66 20 4d 50 57 0d 20 20 | 63 75 72 73 6f 72 5f 63 |f MPW. |cursor_c|
|00001ce0| 6f 75 6e 74 20 3d 20 30 | 3b 0d 23 65 6e 64 69 66 |ount = 0|;.#endif|
|00001cf0| 0d 7d 0d 0d 2f 2a 20 43 | 61 6c 6c 65 64 20 61 74 |.}../* C|alled at|
|00001d00| 20 65 6e 64 20 6f 66 20 | 73 6f 75 72 63 65 20 66 | end of |source f|
|00001d10| 69 6c 65 2c 0d 20 20 20 | 74 6f 20 6f 75 74 70 75 |ile,. |to outpu|
|00001d20| 74 20 74 68 65 20 62 6c | 6f 63 6b 2d 70 72 6f 66 |t the bl|ock-prof|
|00001d30| 69 6c 69 6e 67 20 74 61 | 62 6c 65 20 66 6f 72 20 |iling ta|ble for |
|00001d40| 74 68 69 73 20 65 6e 74 | 69 72 65 20 63 6f 6d 70 |this ent|ire comp|
|00001d50| 69 6c 61 74 69 6f 6e 2e | 20 20 2a 2f 0d 0d 76 6f |ilation.| */..vo|
|00001d60| 69 64 0d 65 6e 64 5f 66 | 69 6e 61 6c 20 28 66 69 |id.end_f|inal (fi|
|00001d70| 6c 65 6e 61 6d 65 29 0d | 20 20 20 20 20 63 68 61 |lename).| cha|
|00001d80| 72 20 2a 66 69 6c 65 6e | 61 6d 65 3b 0d 7b 0d 20 |r *filen|ame;.{. |
|00001d90| 20 69 6e 74 20 69 3b 0d | 0d 20 20 69 66 20 28 70 | int i;.|. if (p|
|00001da0| 72 6f 66 69 6c 65 5f 62 | 6c 6f 63 6b 5f 66 6c 61 |rofile_b|lock_fla|
|00001db0| 67 29 0d 20 20 20 20 7b | 0d 20 20 20 20 20 20 63 |g). {|. c|
|00001dc0| 68 61 72 20 6e 61 6d 65 | 5b 31 32 5d 3b 0d 0d 20 |har name|[12];.. |
|00001dd0| 20 20 20 20 20 64 61 74 | 61 5f 73 65 63 74 69 6f | dat|a_sectio|
|00001de0| 6e 20 28 29 3b 0d 0d 20 | 20 20 20 20 20 2f 2a 20 |n ();.. | /* |
|00001df0| 4f 75 74 70 75 74 20 74 | 68 65 20 6d 61 69 6e 20 |Output t|he main |
|00001e00| 68 65 61 64 65 72 2c 20 | 6f 66 20 36 20 77 6f 72 |header, |of 6 wor|
|00001e10| 64 73 3a 0d 09 20 30 3a | 20 20 31 20 69 66 20 74 |ds:.. 0:| 1 if t|
|00001e20| 68 69 73 20 66 69 6c 65 | 27 73 20 69 6e 69 74 69 |his file|'s initi|
|00001e30| 61 6c 69 7a 65 64 2c 20 | 65 6c 73 65 20 30 2e 0d |alized, |else 0..|
|00001e40| 09 20 31 3a 20 20 61 64 | 64 72 65 73 73 20 6f 66 |. 1: ad|dress of|
|00001e50| 20 66 69 6c 65 20 6e 61 | 6d 65 2e 0d 09 20 32 3a | file na|me... 2:|
|00001e60| 20 20 61 64 64 72 65 73 | 73 20 6f 66 20 74 61 62 | addres|s of tab|
|00001e70| 6c 65 20 6f 66 20 63 6f | 75 6e 74 73 2e 0d 09 20 |le of co|unts... |
|00001e80| 34 3a 20 20 6e 75 6d 62 | 65 72 20 6f 66 20 63 6f |4: numb|er of co|
|00001e90| 75 6e 74 73 20 69 6e 20 | 74 68 65 20 74 61 62 6c |unts in |the tabl|
|00001ea0| 65 2e 0d 09 20 35 3a 20 | 20 61 6c 77 61 79 73 20 |e... 5: | always |
|00001eb0| 30 2c 20 66 6f 72 20 63 | 6f 6d 70 61 74 69 62 69 |0, for c|ompatibi|
|00001ec0| 6c 69 74 79 20 77 69 74 | 68 20 53 75 6e 2e 0d 09 |lity wit|h Sun...|
|00001ed0| 20 36 3a 20 20 65 78 74 | 72 61 20 77 6f 72 64 20 | 6: ext|ra word |
|00001ee0| 61 64 64 65 64 20 62 79 | 20 47 4e 55 3a 20 61 64 |added by| GNU: ad|
|00001ef0| 64 72 65 73 73 20 6f 66 | 20 61 64 64 72 65 73 73 |dress of| address|
|00001f00| 20 74 61 62 6c 65 0d 09 | 20 20 20 20 20 20 77 68 | table..| wh|
|00001f10| 69 63 68 20 63 6f 6e 74 | 61 69 6e 73 20 61 64 64 |ich cont|ains add|
|00001f20| 72 65 73 73 65 73 20 6f | 66 20 62 61 73 69 63 20 |resses o|f basic |
|00001f30| 62 6c 6f 63 6b 73 2c 0d | 09 20 20 20 20 20 20 69 |blocks,.|. i|
|00001f40| 6e 20 70 61 72 61 6c 6c | 65 6c 20 77 69 74 68 20 |n parall|el with |
|00001f50| 74 68 65 20 74 61 62 6c | 65 20 6f 66 20 63 6f 75 |the tabl|e of cou|
|00001f60| 6e 74 73 2e 20 20 2a 2f | 0d 20 20 20 20 20 20 41 |nts. */|. A|
|00001f70| 53 4d 5f 4f 55 54 50 55 | 54 5f 41 4c 49 47 4e 20 |SM_OUTPU|T_ALIGN |
|00001f80| 28 61 73 6d 5f 6f 75 74 | 5f 66 69 6c 65 2c 0d 09 |(asm_out|_file,..|
|00001f90| 09 09 65 78 61 63 74 5f | 6c 6f 67 32 20 28 6d 69 |..exact_|log2 (mi|
|00001fa0| 6e 20 28 55 4e 49 54 53 | 5f 50 45 52 5f 57 4f 52 |n (UNITS|_PER_WOR|
|00001fb0| 44 2c 0d 09 09 09 09 09 | 20 42 49 47 47 45 53 54 |D,......| BIGGEST|
|00001fc0| 5f 41 4c 49 47 4e 4d 45 | 4e 54 20 2f 20 42 49 54 |_ALIGNME|NT / BIT|
|00001fd0| 53 5f 50 45 52 5f 55 4e | 49 54 29 29 29 3b 0d 0d |S_PER_UN|IT)));..|
|00001fe0| 20 20 20 20 20 20 41 53 | 4d 5f 4f 55 54 50 55 54 | AS|M_OUTPUT|
|00001ff0| 5f 49 4e 54 45 52 4e 41 | 4c 5f 4c 41 42 45 4c 20 |_INTERNA|L_LABEL |
|00002000| 28 61 73 6d 5f 6f 75 74 | 5f 66 69 6c 65 2c 20 22 |(asm_out|_file, "|
|00002010| 4c 50 42 58 22 2c 20 30 | 29 3b 0d 20 20 20 20 20 |LPBX", 0|);. |
|00002020| 20 61 73 73 65 6d 62 6c | 65 5f 69 6e 74 65 67 65 | assembl|e_intege|
|00002030| 72 5f 7a 65 72 6f 20 28 | 29 3b 0d 0d 20 20 20 20 |r_zero (|);.. |
|00002040| 20 20 41 53 4d 5f 47 45 | 4e 45 52 41 54 45 5f 49 | ASM_GE|NERATE_I|
|00002050| 4e 54 45 52 4e 41 4c 5f | 4c 41 42 45 4c 20 28 6e |NTERNAL_|LABEL (n|
|00002060| 61 6d 65 2c 20 22 4c 50 | 42 58 22 2c 20 31 29 3b |ame, "LP|BX", 1);|
|00002070| 0d 20 20 20 20 20 20 41 | 53 4d 5f 4f 55 54 50 55 |. A|SM_OUTPU|
|00002080| 54 5f 49 4e 54 20 28 61 | 73 6d 5f 6f 75 74 5f 66 |T_INT (a|sm_out_f|
|00002090| 69 6c 65 2c 20 67 65 6e | 5f 72 74 78 20 28 53 59 |ile, gen|_rtx (SY|
|000020a0| 4d 42 4f 4c 5f 52 45 46 | 2c 20 50 6d 6f 64 65 2c |MBOL_REF|, Pmode,|
|000020b0| 20 6e 61 6d 65 29 29 3b | 0d 20 20 20 20 20 20 41 | name));|. A|
|000020c0| 53 4d 5f 47 45 4e 45 52 | 41 54 45 5f 49 4e 54 45 |SM_GENER|ATE_INTE|
|000020d0| 52 4e 41 4c 5f 4c 41 42 | 45 4c 20 28 6e 61 6d 65 |RNAL_LAB|EL (name|
|000020e0| 2c 20 22 4c 50 42 58 22 | 2c 20 32 29 3b 0d 20 20 |, "LPBX"|, 2);. |
|000020f0| 20 20 20 20 41 53 4d 5f | 4f 55 54 50 55 54 5f 49 | ASM_|OUTPUT_I|
|00002100| 4e 54 20 28 61 73 6d 5f | 6f 75 74 5f 66 69 6c 65 |NT (asm_|out_file|
|00002110| 2c 20 67 65 6e 5f 72 74 | 78 20 28 53 59 4d 42 4f |, gen_rt|x (SYMBO|
|00002120| 4c 5f 52 45 46 2c 20 50 | 6d 6f 64 65 2c 20 6e 61 |L_REF, P|mode, na|
|00002130| 6d 65 29 29 3b 0d 20 20 | 20 20 20 20 41 53 4d 5f |me));. | ASM_|
|00002140| 4f 55 54 50 55 54 5f 49 | 4e 54 20 28 61 73 6d 5f |OUTPUT_I|NT (asm_|
|00002150| 6f 75 74 5f 66 69 6c 65 | 2c 20 67 65 6e 5f 72 74 |out_file|, gen_rt|
|00002160| 78 20 28 43 4f 4e 53 54 | 5f 49 4e 54 2c 20 56 4f |x (CONST|_INT, VO|
|00002170| 49 44 6d 6f 64 65 2c 0d | 09 09 09 09 09 20 20 20 |IDmode,.|..... |
|00002180| 20 20 63 6f 75 6e 74 5f | 62 61 73 69 63 5f 62 6c | count_|basic_bl|
|00002190| 6f 63 6b 73 29 29 3b 0d | 20 20 20 20 20 20 61 73 |ocks));.| as|
|000021a0| 73 65 6d 62 6c 65 5f 69 | 6e 74 65 67 65 72 5f 7a |semble_i|nteger_z|
|000021b0| 65 72 6f 20 28 29 3b 0d | 20 20 20 20 20 20 41 53 |ero ();.| AS|
|000021c0| 4d 5f 47 45 4e 45 52 41 | 54 45 5f 49 4e 54 45 52 |M_GENERA|TE_INTER|
|000021d0| 4e 41 4c 5f 4c 41 42 45 | 4c 20 28 6e 61 6d 65 2c |NAL_LABE|L (name,|
|000021e0| 20 22 4c 50 42 58 22 2c | 20 33 29 3b 0d 20 20 20 | "LPBX",| 3);. |
|000021f0| 20 20 20 41 53 4d 5f 4f | 55 54 50 55 54 5f 49 4e | ASM_O|UTPUT_IN|
|00002200| 54 20 28 61 73 6d 5f 6f | 75 74 5f 66 69 6c 65 2c |T (asm_o|ut_file,|
|00002210| 20 67 65 6e 5f 72 74 78 | 20 28 53 59 4d 42 4f 4c | gen_rtx| (SYMBOL|
|00002220| 5f 52 45 46 2c 20 50 6d | 6f 64 65 2c 20 6e 61 6d |_REF, Pm|ode, nam|
|00002230| 65 29 29 3b 0d 0d 20 20 | 20 20 20 20 2f 2a 20 4f |e));.. | /* O|
|00002240| 75 74 70 75 74 20 74 68 | 65 20 66 69 6c 65 20 6e |utput th|e file n|
|00002250| 61 6d 65 2e 20 20 2a 2f | 0d 20 20 20 20 20 20 41 |ame. */|. A|
|00002260| 53 4d 5f 4f 55 54 50 55 | 54 5f 49 4e 54 45 52 4e |SM_OUTPU|T_INTERN|
|00002270| 41 4c 5f 4c 41 42 45 4c | 20 28 61 73 6d 5f 6f 75 |AL_LABEL| (asm_ou|
|00002280| 74 5f 66 69 6c 65 2c 20 | 22 4c 50 42 58 22 2c 20 |t_file, |"LPBX", |
|00002290| 31 29 3b 0d 20 20 20 20 | 20 20 61 73 73 65 6d 62 |1);. | assemb|
|000022a0| 6c 65 5f 73 74 72 69 6e | 67 20 28 66 69 6c 65 6e |le_strin|g (filen|
|000022b0| 61 6d 65 2c 20 73 74 72 | 6c 65 6e 20 28 66 69 6c |ame, str|len (fil|
|000022c0| 65 6e 61 6d 65 29 20 2b | 20 31 29 3b 0d 0d 20 20 |ename) +| 1);.. |
|000022d0| 20 20 20 20 2f 2a 20 52 | 65 61 6c 69 67 6e 20 64 | /* R|ealign d|
|000022e0| 61 74 61 20 73 65 63 74 | 69 6f 6e 2e 20 20 2a 2f |ata sect|ion. */|
|000022f0| 0d 20 20 20 20 20 20 41 | 53 4d 5f 4f 55 54 50 55 |. A|SM_OUTPU|
|00002300| 54 5f 41 4c 49 47 4e 20 | 28 61 73 6d 5f 6f 75 74 |T_ALIGN |(asm_out|
|00002310| 5f 66 69 6c 65 2c 0d 09 | 09 09 65 78 61 63 74 5f |_file,..|..exact_|
|00002320| 6c 6f 67 32 20 28 6d 69 | 6e 20 28 55 4e 49 54 53 |log2 (mi|n (UNITS|
|00002330| 5f 50 45 52 5f 57 4f 52 | 44 2c 0d 09 09 09 09 09 |_PER_WOR|D,......|
|00002340| 20 42 49 47 47 45 53 54 | 5f 41 4c 49 47 4e 4d 45 | BIGGEST|_ALIGNME|
|00002350| 4e 54 20 2f 20 42 49 54 | 53 5f 50 45 52 5f 55 4e |NT / BIT|S_PER_UN|
|00002360| 49 54 29 29 29 3b 0d 0d | 20 20 20 20 20 20 2f 2a |IT)));..| /*|
|00002370| 20 4d 61 6b 65 20 73 70 | 61 63 65 20 66 6f 72 20 | Make sp|ace for |
|00002380| 74 68 65 20 74 61 62 6c | 65 20 6f 66 20 63 6f 75 |the tabl|e of cou|
|00002390| 6e 74 73 2e 20 20 2a 2f | 0d 20 20 20 20 20 20 41 |nts. */|. A|
|000023a0| 53 4d 5f 4f 55 54 50 55 | 54 5f 49 4e 54 45 52 4e |SM_OUTPU|T_INTERN|
|000023b0| 41 4c 5f 4c 41 42 45 4c | 20 28 61 73 6d 5f 6f 75 |AL_LABEL| (asm_ou|
|000023c0| 74 5f 66 69 6c 65 2c 20 | 22 4c 50 42 58 22 2c 20 |t_file, |"LPBX", |
|000023d0| 32 29 3b 0d 20 20 20 20 | 20 20 41 53 4d 5f 4f 55 |2);. | ASM_OU|
|000023e0| 54 50 55 54 5f 53 4b 49 | 50 20 28 61 73 6d 5f 6f |TPUT_SKI|P (asm_o|
|000023f0| 75 74 5f 66 69 6c 65 2c | 20 55 4e 49 54 53 5f 50 |ut_file,| UNITS_P|
|00002400| 45 52 5f 57 4f 52 44 20 | 2a 20 63 6f 75 6e 74 5f |ER_WORD |* count_|
|00002410| 62 61 73 69 63 5f 62 6c | 6f 63 6b 73 29 3b 0d 0d |basic_bl|ocks);..|
|00002420| 20 20 20 20 20 20 2f 2a | 20 4f 75 74 70 75 74 20 | /*| Output |
|00002430| 74 68 65 20 74 61 62 6c | 65 20 6f 66 20 61 64 64 |the tabl|e of add|
|00002440| 72 65 73 73 65 73 2e 20 | 20 2a 2f 0d 20 20 20 20 |resses. | */. |
|00002450| 20 20 74 65 78 74 5f 73 | 65 63 74 69 6f 6e 20 28 | text_s|ection (|
|00002460| 29 3b 0d 20 20 20 20 20 | 20 41 53 4d 5f 4f 55 54 |);. | ASM_OUT|
|00002470| 50 55 54 5f 49 4e 54 45 | 52 4e 41 4c 5f 4c 41 42 |PUT_INTE|RNAL_LAB|
|00002480| 45 4c 20 28 61 73 6d 5f | 6f 75 74 5f 66 69 6c 65 |EL (asm_|out_file|
|00002490| 2c 20 22 4c 50 42 58 22 | 2c 20 33 29 3b 0d 20 20 |, "LPBX"|, 3);. |
|000024a0| 20 20 20 20 66 6f 72 20 | 28 69 20 3d 20 30 3b 20 | for |(i = 0; |
|000024b0| 69 20 3c 20 63 6f 75 6e | 74 5f 62 61 73 69 63 5f |i < coun|t_basic_|
|000024c0| 62 6c 6f 63 6b 73 3b 20 | 69 2b 2b 29 0d 09 7b 0d |blocks; |i++)..{.|
|000024d0| 09 20 20 63 68 61 72 20 | 6e 61 6d 65 5b 31 32 5d |. char |name[12]|
|000024e0| 3b 0d 09 20 20 41 53 4d | 5f 47 45 4e 45 52 41 54 |;.. ASM|_GENERAT|
|000024f0| 45 5f 49 4e 54 45 52 4e | 41 4c 5f 4c 41 42 45 4c |E_INTERN|AL_LABEL|
|00002500| 20 28 6e 61 6d 65 2c 20 | 22 4c 50 42 22 2c 20 69 | (name, |"LPB", i|
|00002510| 29 3b 0d 09 20 20 41 53 | 4d 5f 4f 55 54 50 55 54 |);.. AS|M_OUTPUT|
|00002520| 5f 49 4e 54 20 28 61 73 | 6d 5f 6f 75 74 5f 66 69 |_INT (as|m_out_fi|
|00002530| 6c 65 2c 20 67 65 6e 5f | 72 74 78 20 28 53 59 4d |le, gen_|rtx (SYM|
|00002540| 42 4f 4c 5f 52 45 46 2c | 20 50 6d 6f 64 65 2c 20 |BOL_REF,| Pmode, |
|00002550| 6e 61 6d 65 29 29 3b 0d | 09 7d 0d 0d 20 20 20 20 |name));.|.}.. |
|00002560| 20 20 2f 2a 20 45 6e 64 | 20 77 69 74 68 20 74 68 | /* End| with th|
|00002570| 65 20 61 64 64 72 65 73 | 73 20 6f 66 20 74 68 65 |e addres|s of the|
|00002580| 20 74 61 62 6c 65 20 6f | 66 20 61 64 64 72 65 73 | table o|f addres|
|00002590| 73 65 73 2c 0d 09 20 73 | 6f 20 77 65 20 63 61 6e |ses,.. s|o we can|
|000025a0| 20 66 69 6e 64 20 69 74 | 20 65 61 73 69 6c 79 2c | find it| easily,|
|000025b0| 20 61 73 20 74 68 65 20 | 6c 61 73 74 20 77 6f 72 | as the |last wor|
|000025c0| 64 20 69 6e 20 74 68 65 | 20 66 69 6c 65 27 73 20 |d in the| file's |
|000025d0| 74 65 78 74 2e 20 20 2a | 2f 0d 20 20 20 20 20 20 |text. *|/. |
|000025e0| 41 53 4d 5f 47 45 4e 45 | 52 41 54 45 5f 49 4e 54 |ASM_GENE|RATE_INT|
|000025f0| 45 52 4e 41 4c 5f 4c 41 | 42 45 4c 20 28 6e 61 6d |ERNAL_LA|BEL (nam|
|00002600| 65 2c 20 22 4c 50 42 58 | 22 2c 20 33 29 3b 0d 20 |e, "LPBX|", 3);. |
|00002610| 20 20 20 20 20 41 53 4d | 5f 4f 55 54 50 55 54 5f | ASM|_OUTPUT_|
|00002620| 49 4e 54 20 28 61 73 6d | 5f 6f 75 74 5f 66 69 6c |INT (asm|_out_fil|
|00002630| 65 2c 20 67 65 6e 5f 72 | 74 78 20 28 53 59 4d 42 |e, gen_r|tx (SYMB|
|00002640| 4f 4c 5f 52 45 46 2c 20 | 50 6d 6f 64 65 2c 20 6e |OL_REF, |Pmode, n|
|00002650| 61 6d 65 29 29 3b 0d 20 | 20 20 20 7d 0d 7d 0d 0d |ame));. | }.}..|
|00002660| 2f 2a 20 45 6e 61 62 6c | 65 20 41 50 50 20 70 72 |/* Enabl|e APP pr|
|00002670| 6f 63 65 73 73 69 6e 67 | 20 6f 66 20 73 75 62 73 |ocessing| of subs|
|00002680| 65 71 75 65 6e 74 20 6f | 75 74 70 75 74 2e 0d 20 |equent o|utput.. |
|00002690| 20 20 55 73 65 64 20 62 | 65 66 6f 72 65 20 74 68 | Used b|efore th|
|000026a0| 65 20 6f 75 74 70 75 74 | 20 66 72 6f 6d 20 61 6e |e output| from an|
|000026b0| 20 60 61 73 6d 27 20 73 | 74 61 74 65 6d 65 6e 74 | `asm' s|tatement|
|000026c0| 2e 20 20 2a 2f 0d 0d 76 | 6f 69 64 0d 61 70 70 5f |. */..v|oid.app_|
|000026d0| 65 6e 61 62 6c 65 20 28 | 29 0d 7b 0d 20 20 69 66 |enable (|).{. if|
|000026e0| 20 28 21 20 61 70 70 5f | 6f 6e 29 0d 20 20 20 20 | (! app_|on). |
|000026f0| 7b 0d 20 20 20 20 20 20 | 66 70 72 69 6e 74 66 20 |{. |fprintf |
|00002700| 28 61 73 6d 5f 6f 75 74 | 5f 66 69 6c 65 2c 20 41 |(asm_out|_file, A|
|00002710| 53 4d 5f 41 50 50 5f 4f | 4e 29 3b 0d 20 20 20 20 |SM_APP_O|N);. |
|00002720| 20 20 61 70 70 5f 6f 6e | 20 3d 20 31 3b 0d 20 20 | app_on| = 1;. |
|00002730| 20 20 7d 0d 7d 0d 0d 2f | 2a 20 45 6e 61 62 6c 65 | }.}../|* Enable|
|00002740| 20 41 50 50 20 70 72 6f | 63 65 73 73 69 6e 67 20 | APP pro|cessing |
|00002750| 6f 66 20 73 75 62 73 65 | 71 75 65 6e 74 20 6f 75 |of subse|quent ou|
|00002760| 74 70 75 74 2e 0d 20 20 | 20 43 61 6c 6c 65 64 20 |tput.. | Called |
|00002770| 66 72 6f 6d 20 76 61 72 | 61 73 6d 2e 63 20 62 65 |from var|asm.c be|
|00002780| 66 6f 72 65 20 6d 6f 73 | 74 20 6b 69 6e 64 73 20 |fore mos|t kinds |
|00002790| 6f 66 20 6f 75 74 70 75 | 74 2e 20 20 2a 2f 0d 0d |of outpu|t. */..|
|000027a0| 76 6f 69 64 0d 61 70 70 | 5f 64 69 73 61 62 6c 65 |void.app|_disable|
|000027b0| 20 28 29 0d 7b 0d 20 20 | 69 66 20 28 61 70 70 5f | ().{. |if (app_|
|000027c0| 6f 6e 29 0d 20 20 20 20 | 7b 0d 20 20 20 20 20 20 |on). |{. |
|000027d0| 66 70 72 69 6e 74 66 20 | 28 61 73 6d 5f 6f 75 74 |fprintf |(asm_out|
|000027e0| 5f 66 69 6c 65 2c 20 41 | 53 4d 5f 41 50 50 5f 4f |_file, A|SM_APP_O|
|000027f0| 46 46 29 3b 0d 20 20 20 | 20 20 20 61 70 70 5f 6f |FF);. | app_o|
|00002800| 6e 20 3d 20 30 3b 0d 20 | 20 20 20 7d 0d 7d 0d 0c |n = 0;. | }.}..|
|00002810| 0d 2f 2a 20 52 65 74 75 | 72 6e 20 74 68 65 20 6e |./* Retu|rn the n|
|00002820| 75 6d 62 65 72 20 6f 66 | 20 73 6c 6f 74 73 20 66 |umber of| slots f|
|00002830| 69 6c 6c 65 64 20 69 6e | 20 74 68 65 20 63 75 72 |illed in| the cur|
|00002840| 72 65 6e 74 20 0d 20 20 | 20 64 65 6c 61 79 65 64 |rent . | delayed|
|00002850| 20 62 72 61 6e 63 68 20 | 73 65 71 75 65 6e 63 65 | branch |sequence|
|00002860| 2e 20 2a 2f 0d 0d 23 69 | 66 64 65 66 20 48 41 56 |. */..#i|fdef HAV|
|00002870| 45 5f 44 45 4c 41 59 45 | 44 5f 42 52 41 4e 43 48 |E_DELAYE|D_BRANCH|
|00002880| 0d 69 6e 74 0d 64 62 72 | 5f 73 65 71 75 65 6e 63 |.int.dbr|_sequenc|
|00002890| 65 5f 6c 65 6e 67 74 68 | 20 28 29 0d 7b 0d 20 20 |e_length| ().{. |
|000028a0| 69 6e 74 20 69 3b 0d 20 | 20 69 6e 74 20 73 6c 6f |int i;. | int slo|
|000028b0| 74 73 20 3d 20 30 3b 0d | 20 20 2f 2a 20 49 74 27 |ts = 0;.| /* It'|
|000028c0| 73 20 7a 65 72 6f 20 69 | 66 20 77 65 20 61 72 65 |s zero i|f we are|
|000028d0| 20 6e 6f 74 20 73 63 68 | 65 64 75 6c 69 6e 67 20 | not sch|eduling |
|000028e0| 6f 72 20 6e 6f 74 20 69 | 6e 20 61 20 73 65 71 75 |or not i|n a sequ|
|000028f0| 65 6e 63 65 2e 20 0d 20 | 20 20 20 20 28 57 65 20 |ence. . | (We |
|00002900| 6e 65 76 65 72 20 63 6f | 75 6e 74 20 74 68 65 20 |never co|unt the |
|00002910| 66 69 72 73 74 20 69 6e | 73 6e 2e 29 20 20 20 20 |first in|sn.) |
|00002920| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 2a 2f | | */|
|00002930| 0d 20 20 69 66 20 28 66 | 6c 61 67 5f 64 65 6c 61 |. if (f|lag_dela|
|00002940| 79 65 64 5f 62 72 61 6e | 63 68 20 26 26 20 66 69 |yed_bran|ch && fi|
|00002950| 6e 61 6c 5f 73 65 71 75 | 65 6e 63 65 20 21 3d 20 |nal_sequ|ence != |
|00002960| 30 29 0d 20 20 20 20 7b | 0d 20 20 20 20 20 20 66 |0). {|. f|
|00002970| 6f 72 20 28 69 20 3d 20 | 31 3b 20 69 20 3c 20 58 |or (i = |1; i < X|
|00002980| 56 45 43 4c 45 4e 20 28 | 66 69 6e 61 6c 5f 73 65 |VECLEN (|final_se|
|00002990| 71 75 65 6e 63 65 2c 20 | 30 29 3b 20 69 2b 2b 29 |quence, |0); i++)|
|000029a0| 0d 09 73 6c 6f 74 73 20 | 2b 3d 20 44 42 52 5f 49 |..slots |+= DBR_I|
|000029b0| 4e 53 4e 5f 53 4c 4f 54 | 53 20 28 58 56 45 43 45 |NSN_SLOT|S (XVECE|
|000029c0| 58 50 20 28 66 69 6e 61 | 6c 5f 73 65 71 75 65 6e |XP (fina|l_sequen|
|000029d0| 63 65 2c 20 30 2c 20 69 | 29 29 3b 0d 20 20 20 20 |ce, 0, i|));. |
|000029e0| 7d 0d 20 20 72 65 74 75 | 72 6e 20 73 6c 6f 74 73 |}. retu|rn slots|
|000029f0| 3b 0d 7d 0d 23 65 6e 64 | 69 66 0d 0c 0d 2f 2a 20 |;.}.#end|if.../* |
|00002a00| 4f 75 74 70 75 74 20 61 | 73 73 65 6d 62 6c 65 72 |Output a|ssembler|
|00002a10| 20 63 6f 64 65 20 66 6f | 72 20 74 68 65 20 73 74 | code fo|r the st|
|00002a20| 61 72 74 20 6f 66 20 61 | 20 66 75 6e 63 74 69 6f |art of a| functio|
|00002a30| 6e 2c 0d 20 20 20 61 6e | 64 20 69 6e 69 74 69 61 |n,. an|d initia|
|00002a40| 6c 69 7a 65 20 73 6f 6d | 65 20 6f 66 20 74 68 65 |lize som|e of the|
|00002a50| 20 76 61 72 69 61 62 6c | 65 73 20 69 6e 20 74 68 | variabl|es in th|
|00002a60| 69 73 20 66 69 6c 65 0d | 20 20 20 66 6f 72 20 74 |is file.| for t|
|00002a70| 68 65 20 6e 65 77 20 66 | 75 6e 63 74 69 6f 6e 2e |he new f|unction.|
|00002a80| 20 20 54 68 65 20 6c 61 | 62 65 6c 20 66 6f 72 20 | The la|bel for |
|00002a90| 74 68 65 20 66 75 6e 63 | 74 69 6f 6e 20 61 6e 64 |the func|tion and|
|00002aa0| 20 61 73 73 6f 63 69 61 | 74 65 64 0d 20 20 20 61 | associa|ted. a|
|00002ab0| 73 73 65 6d 62 6c 65 72 | 20 70 73 65 75 64 6f 2d |ssembler| pseudo-|
|00002ac0| 6f 70 73 20 68 61 76 65 | 20 61 6c 72 65 61 64 79 |ops have| already|
|00002ad0| 20 62 65 65 6e 20 6f 75 | 74 70 75 74 20 69 6e 20 | been ou|tput in |
|00002ae0| 60 61 73 73 65 6d 62 6c | 65 5f 66 75 6e 63 74 69 |`assembl|e_functi|
|00002af0| 6f 6e 27 2e 0d 0d 20 20 | 20 46 49 52 53 54 20 69 |on'... | FIRST i|
|00002b00| 73 20 74 68 65 20 66 69 | 72 73 74 20 69 6e 73 6e |s the fi|rst insn|
|00002b10| 20 6f 66 20 74 68 65 20 | 72 74 6c 20 66 6f 72 20 | of the |rtl for |
|00002b20| 74 68 65 20 66 75 6e 63 | 74 69 6f 6e 20 62 65 69 |the func|tion bei|
|00002b30| 6e 67 20 63 6f 6d 70 69 | 6c 65 64 2e 0d 20 20 20 |ng compi|led.. |
|00002b40| 46 49 4c 45 20 69 73 20 | 74 68 65 20 66 69 6c 65 |FILE is |the file|
|00002b50| 20 74 6f 20 77 72 69 74 | 65 20 61 73 73 65 6d 62 | to writ|e assemb|
|00002b60| 6c 65 72 20 63 6f 64 65 | 20 74 6f 2e 0d 20 20 20 |ler code| to.. |
|00002b70| 57 52 49 54 45 5f 53 59 | 4d 42 4f 4c 53 20 73 61 |WRITE_SY|MBOLS sa|
|00002b80| 79 73 20 77 68 69 63 68 | 20 6b 69 6e 64 20 6f 66 |ys which| kind of|
|00002b90| 20 64 65 62 75 67 67 69 | 6e 67 20 69 6e 66 6f 20 | debuggi|ng info |
|00002ba0| 74 6f 20 77 72 69 74 65 | 20 28 6f 72 20 6e 6f 6e |to write| (or non|
|00002bb0| 65 29 2e 0d 20 20 20 4f | 50 54 49 4d 49 5a 45 20 |e).. O|PTIMIZE |
|00002bc0| 69 73 20 6e 6f 6e 7a 65 | 72 6f 20 69 66 20 77 65 |is nonze|ro if we|
|00002bd0| 20 73 68 6f 75 6c 64 20 | 65 6c 69 6d 69 6e 61 74 | should |eliminat|
|00002be0| 65 20 72 65 64 75 6e 64 | 61 6e 74 0d 20 20 20 20 |e redund|ant. |
|00002bf0| 20 74 65 73 74 20 61 6e | 64 20 63 6f 6d 70 61 72 | test an|d compar|
|00002c00| 65 20 69 6e 73 6e 73 2e | 20 20 2a 2f 0d 0d 76 6f |e insns.| */..vo|
|00002c10| 69 64 0d 66 69 6e 61 6c | 5f 73 74 61 72 74 5f 66 |id.final|_start_f|
|00002c20| 75 6e 63 74 69 6f 6e 20 | 28 66 69 72 73 74 2c 20 |unction |(first, |
|00002c30| 66 69 6c 65 2c 20 77 72 | 69 74 65 5f 73 79 6d 62 |file, wr|ite_symb|
|00002c40| 6f 6c 73 2c 20 6f 70 74 | 69 6d 69 7a 65 29 0d 20 |ols, opt|imize). |
|00002c50| 20 20 20 20 72 74 78 20 | 66 69 72 73 74 3b 0d 20 | rtx |first;. |
|00002c60| 20 20 20 20 46 49 4c 45 | 20 2a 66 69 6c 65 3b 0d | FILE| *file;.|
|00002c70| 20 20 20 20 20 65 6e 75 | 6d 20 64 65 62 75 67 67 | enu|m debugg|
|00002c80| 65 72 20 77 72 69 74 65 | 5f 73 79 6d 62 6f 6c 73 |er write|_symbols|
|00002c90| 3b 0d 20 20 20 20 20 69 | 6e 74 20 6f 70 74 69 6d |;. i|nt optim|
|00002ca0| 69 7a 65 3b 0d 7b 0d 20 | 20 62 6c 6f 63 6b 5f 64 |ize;.{. | block_d|
|00002cb0| 65 70 74 68 20 3d 20 30 | 3b 0d 0d 20 20 74 68 69 |epth = 0|;.. thi|
|00002cc0| 73 5f 69 73 5f 61 73 6d | 5f 6f 70 65 72 61 6e 64 |s_is_asm|_operand|
|00002cd0| 73 20 3d 20 30 3b 0d 0d | 20 20 2f 2a 20 52 65 63 |s = 0;..| /* Rec|
|00002ce0| 6f 72 64 20 62 65 67 69 | 6e 6e 69 6e 67 20 6f 66 |ord begi|nning of|
|00002cf0| 20 74 68 65 20 73 79 6d | 62 6f 6c 2d 62 6c 6f 63 | the sym|bol-bloc|
|00002d00| 6b 20 74 68 61 74 27 73 | 20 74 68 65 20 65 6e 74 |k that's| the ent|
|00002d10| 69 72 65 20 66 75 6e 63 | 74 69 6f 6e 2e 20 20 2a |ire func|tion. *|
|00002d20| 2f 0d 0d 20 20 69 66 20 | 28 77 72 69 74 65 5f 73 |/.. if |(write_s|
|00002d30| 79 6d 62 6f 6c 73 20 3d | 3d 20 47 44 42 5f 44 45 |ymbols =|= GDB_DE|
|00002d40| 42 55 47 29 0d 20 20 20 | 20 7b 0d 20 20 20 20 20 |BUG). | {. |
|00002d50| 20 70 65 6e 64 69 6e 67 | 5f 62 6c 6f 63 6b 73 5b | pending|_blocks[|
|00002d60| 62 6c 6f 63 6b 5f 64 65 | 70 74 68 2b 2b 5d 20 3d |block_de|pth++] =|
|00002d70| 20 6e 65 78 74 5f 62 6c | 6f 63 6b 5f 69 6e 64 65 | next_bl|ock_inde|
|00002d80| 78 3b 0d 20 20 20 20 20 | 20 66 70 72 69 6e 74 66 |x;. | fprintf|
|00002d90| 20 28 66 69 6c 65 2c 20 | 22 5c 74 2e 67 64 62 62 | (file, |"\t.gdbb|
|00002da0| 65 67 20 25 64 5c 6e 22 | 2c 20 6e 65 78 74 5f 62 |eg %d\n"|, next_b|
|00002db0| 6c 6f 63 6b 5f 69 6e 64 | 65 78 2b 2b 29 3b 0d 20 |lock_ind|ex++);. |
|00002dc0| 20 20 20 7d 0d 0d 20 20 | 2f 2a 20 49 6e 69 74 69 | }.. |/* Initi|
|00002dd0| 61 6c 20 6c 69 6e 65 20 | 6e 75 6d 62 65 72 20 69 |al line |number i|
|00002de0| 73 20 73 75 70 70 6f 73 | 65 64 20 74 6f 20 62 65 |s suppos|ed to be|
|00002df0| 20 6f 75 74 70 75 74 0d | 20 20 20 20 20 62 65 66 | output.| bef|
|00002e00| 6f 72 65 20 74 68 65 20 | 66 75 6e 63 74 69 6f 6e |ore the |function|
|00002e10| 27 73 20 70 72 6f 6c 6f | 67 75 65 20 61 6e 64 20 |'s prolo|gue and |
|00002e20| 6c 61 62 65 6c 0d 20 20 | 20 20 20 73 6f 20 74 68 |label. | so th|
|00002e30| 61 74 20 74 68 65 20 66 | 75 6e 63 74 69 6f 6e 27 |at the f|unction'|
|00002e40| 73 20 61 64 64 72 65 73 | 73 20 77 69 6c 6c 20 6e |s addres|s will n|
|00002e50| 6f 74 20 61 70 70 65 61 | 72 20 74 6f 20 62 65 0d |ot appea|r to be.|
|00002e60| 20 20 20 20 20 69 6e 20 | 74 68 65 20 6c 61 73 74 | in |the last|
|00002e70| 20 73 74 61 74 65 6d 65 | 6e 74 20 6f 66 20 74 68 | stateme|nt of th|
|00002e80| 65 20 70 72 65 63 65 64 | 69 6e 67 20 66 75 6e 63 |e preced|ing func|
|00002e90| 74 69 6f 6e 2e 20 20 2a | 2f 0d 20 20 69 66 20 28 |tion. *|/. if (|
|00002ea0| 4e 4f 54 45 5f 4c 49 4e | 45 5f 4e 55 4d 42 45 52 |NOTE_LIN|E_NUMBER|
|00002eb0| 20 28 66 69 72 73 74 29 | 20 21 3d 20 4e 4f 54 45 | (first)| != NOTE|
|00002ec0| 5f 49 4e 53 4e 5f 44 45 | 4c 45 54 45 44 29 0d 20 |_INSN_DE|LETED). |
|00002ed0| 20 20 20 6f 75 74 70 75 | 74 5f 73 6f 75 72 63 65 | outpu|t_source|
|00002ee0| 5f 6c 69 6e 65 20 28 66 | 69 6c 65 2c 20 66 69 72 |_line (f|ile, fir|
|00002ef0| 73 74 2c 20 77 72 69 74 | 65 5f 73 79 6d 62 6f 6c |st, writ|e_symbol|
|00002f00| 73 29 3b 0d 0d 23 69 66 | 64 65 66 20 46 55 4e 43 |s);..#if|def FUNC|
|00002f10| 54 49 4f 4e 5f 50 52 4f | 4c 4f 47 55 45 0d 20 20 |TION_PRO|LOGUE. |
|00002f20| 2f 2a 20 46 69 72 73 74 | 20 6f 75 74 70 75 74 20 |/* First| output |
|00002f30| 74 68 65 20 66 75 6e 63 | 74 69 6f 6e 20 70 72 6f |the func|tion pro|
|00002f40| 6c 6f 67 75 65 3a 20 63 | 6f 64 65 20 74 6f 20 73 |logue: c|ode to s|
|00002f50| 65 74 20 75 70 20 74 68 | 65 20 73 74 61 63 6b 20 |et up th|e stack |
|00002f60| 66 72 61 6d 65 2e 20 20 | 2a 2f 0d 20 20 46 55 4e |frame. |*/. FUN|
|00002f70| 43 54 49 4f 4e 5f 50 52 | 4f 4c 4f 47 55 45 20 28 |CTION_PR|OLOGUE (|
|00002f80| 66 69 6c 65 2c 20 67 65 | 74 5f 66 72 61 6d 65 5f |file, ge|t_frame_|
|00002f90| 73 69 7a 65 20 28 29 29 | 3b 0d 23 65 6e 64 69 66 |size ())|;.#endif|
|00002fa0| 0d 0d 23 69 66 64 65 66 | 20 53 44 42 5f 44 45 42 |..#ifdef| SDB_DEB|
|00002fb0| 55 47 47 49 4e 47 5f 49 | 4e 46 4f 0d 20 20 6e 65 |UGGING_I|NFO. ne|
|00002fc0| 78 74 5f 62 6c 6f 63 6b | 5f 69 6e 64 65 78 20 3d |xt_block|_index =|
|00002fd0| 20 31 3b 0d 23 65 6e 64 | 69 66 0d 0d 23 69 66 64 | 1;.#end|if..#ifd|
|00002fe0| 65 66 20 46 55 4e 43 54 | 49 4f 4e 5f 42 4c 4f 43 |ef FUNCT|ION_BLOC|
|00002ff0| 4b 5f 50 52 4f 46 49 4c | 45 52 0d 20 20 69 66 20 |K_PROFIL|ER. if |
|00003000| 28 70 72 6f 66 69 6c 65 | 5f 62 6c 6f 63 6b 5f 66 |(profile|_block_f|
|00003010| 6c 61 67 29 0d 20 20 20 | 20 7b 0d 20 20 20 20 20 |lag). | {. |
|00003020| 20 46 55 4e 43 54 49 4f | 4e 5f 42 4c 4f 43 4b 5f | FUNCTIO|N_BLOCK_|
|00003030| 50 52 4f 46 49 4c 45 52 | 20 28 66 69 6c 65 2c 20 |PROFILER| (file, |
|00003040| 70 72 6f 66 69 6c 65 5f | 6c 61 62 65 6c 5f 6e 6f |profile_|label_no|
|00003050| 29 3b 0d 20 20 20 20 7d | 0d 23 65 6e 64 69 66 20 |);. }|.#endif |
|00003060| 2f 2a 20 46 55 4e 43 54 | 49 4f 4e 5f 42 4c 4f 43 |/* FUNCT|ION_BLOC|
|00003070| 4b 5f 50 52 4f 46 49 4c | 45 52 20 2a 2f 0d 0d 23 |K_PROFIL|ER */..#|
|00003080| 69 66 6e 64 65 66 20 41 | 50 50 4c 45 5f 43 0d 20 |ifndef A|PPLE_C. |
|00003090| 20 2f 2a 20 54 68 69 73 | 20 70 72 6f 66 69 6c 69 | /* This| profili|
|000030a0| 6e 67 20 73 74 75 66 66 | 20 69 73 20 61 74 20 62 |ng stuff| is at b|
|000030b0| 65 73 74 20 6e 6f 74 20 | 76 65 72 79 20 75 73 65 |est not |very use|
|000030c0| 66 75 6c 2c 20 73 6f 20 | 77 65 20 65 66 66 65 63 |ful, so |we effec|
|000030d0| 74 69 76 65 6c 79 0d 20 | 20 20 20 20 64 69 73 61 |tively. | disa|
|000030e0| 62 6c 65 20 69 74 2e 20 | 2a 2f 0d 20 20 69 66 20 |ble it. |*/. if |
|000030f0| 28 70 72 6f 66 69 6c 65 | 5f 66 6c 61 67 29 0d 20 |(profile|_flag). |
|00003100| 20 20 20 7b 0d 20 20 20 | 20 20 20 69 6e 74 20 61 | {. | int a|
|00003110| 6c 69 67 6e 20 3d 20 6d | 69 6e 20 28 42 49 47 47 |lign = m|in (BIGG|
|00003120| 45 53 54 5f 41 4c 49 47 | 4e 4d 45 4e 54 2c 20 42 |EST_ALIG|NMENT, B|
|00003130| 49 54 53 5f 50 45 52 5f | 57 4f 52 44 29 3b 0d 20 |ITS_PER_|WORD);. |
|00003140| 20 20 20 20 20 65 78 74 | 65 72 6e 20 69 6e 74 20 | ext|ern int |
|00003150| 63 75 72 72 65 6e 74 5f | 66 75 6e 63 74 69 6f 6e |current_|function|
|00003160| 5f 72 65 74 75 72 6e 73 | 5f 73 74 72 75 63 74 3b |_returns|_struct;|
|00003170| 0d 20 20 20 20 20 20 65 | 78 74 65 72 6e 20 69 6e |. e|xtern in|
|00003180| 74 20 63 75 72 72 65 6e | 74 5f 66 75 6e 63 74 69 |t curren|t_functi|
|00003190| 6f 6e 5f 6e 65 65 64 73 | 5f 63 6f 6e 74 65 78 74 |on_needs|_context|
|000031a0| 3b 0d 20 20 20 20 20 20 | 69 6e 74 20 73 76 61 6c |;. |int sval|
|000031b0| 20 3d 20 63 75 72 72 65 | 6e 74 5f 66 75 6e 63 74 | = curre|nt_funct|
|000031c0| 69 6f 6e 5f 72 65 74 75 | 72 6e 73 5f 73 74 72 75 |ion_retu|rns_stru|
|000031d0| 63 74 3b 0d 20 20 20 20 | 20 20 69 6e 74 20 63 78 |ct;. | int cx|
|000031e0| 74 20 3d 20 63 75 72 72 | 65 6e 74 5f 66 75 6e 63 |t = curr|ent_func|
|000031f0| 74 69 6f 6e 5f 6e 65 65 | 64 73 5f 63 6f 6e 74 65 |tion_nee|ds_conte|
|00003200| 78 74 3b 0d 0d 20 20 20 | 20 20 20 64 61 74 61 5f |xt;.. | data_|
|00003210| 73 65 63 74 69 6f 6e 20 | 28 29 3b 0d 20 20 20 20 |section |();. |
|00003220| 20 20 41 53 4d 5f 4f 55 | 54 50 55 54 5f 41 4c 49 | ASM_OU|TPUT_ALI|
|00003230| 47 4e 20 28 66 69 6c 65 | 2c 20 66 6c 6f 6f 72 5f |GN (file|, floor_|
|00003240| 6c 6f 67 32 20 28 61 6c | 69 67 6e 20 2f 20 42 49 |log2 (al|ign / BI|
|00003250| 54 53 5f 50 45 52 5f 55 | 4e 49 54 29 29 3b 0d 20 |TS_PER_U|NIT));. |
|00003260| 20 20 20 20 20 41 53 4d | 5f 4f 55 54 50 55 54 5f | ASM|_OUTPUT_|
|00003270| 49 4e 54 45 52 4e 41 4c | 5f 4c 41 42 45 4c 20 28 |INTERNAL|_LABEL (|
|00003280| 66 69 6c 65 2c 20 22 4c | 50 22 2c 20 70 72 6f 66 |file, "L|P", prof|
|00003290| 69 6c 65 5f 6c 61 62 65 | 6c 5f 6e 6f 29 3b 0d 20 |ile_labe|l_no);. |
|000032a0| 20 20 20 20 20 61 73 73 | 65 6d 62 6c 65 5f 69 6e | ass|emble_in|
|000032b0| 74 65 67 65 72 5f 7a 65 | 72 6f 20 28 29 3b 0d 0d |teger_ze|ro ();..|
|000032c0| 20 20 20 20 20 20 74 65 | 78 74 5f 73 65 63 74 69 | te|xt_secti|
|000032d0| 6f 6e 20 28 29 3b 0d 0d | 23 69 66 64 65 66 20 53 |on ();..|#ifdef S|
|000032e0| 54 52 55 43 54 5f 56 41 | 4c 55 45 5f 49 4e 43 4f |TRUCT_VA|LUE_INCO|
|000032f0| 4d 49 4e 47 5f 52 45 47 | 4e 55 4d 0d 20 20 20 20 |MING_REG|NUM. |
|00003300| 20 20 69 66 20 28 73 76 | 61 6c 29 0d 09 41 53 4d | if (sv|al)..ASM|
|00003310| 5f 4f 55 54 50 55 54 5f | 52 45 47 5f 50 55 53 48 |_OUTPUT_|REG_PUSH|
|00003320| 20 28 66 69 6c 65 2c 20 | 53 54 52 55 43 54 5f 56 | (file, |STRUCT_V|
|00003330| 41 4c 55 45 5f 49 4e 43 | 4f 4d 49 4e 47 5f 52 45 |ALUE_INC|OMING_RE|
|00003340| 47 4e 55 4d 29 3b 0d 23 | 65 6c 73 65 0d 23 69 66 |GNUM);.#|else.#if|
|00003350| 64 65 66 20 53 54 52 55 | 43 54 5f 56 41 4c 55 45 |def STRU|CT_VALUE|
|00003360| 5f 52 45 47 4e 55 4d 0d | 20 20 20 20 20 20 69 66 |_REGNUM.| if|
|00003370| 20 28 73 76 61 6c 29 0d | 09 41 53 4d 5f 4f 55 54 | (sval).|.ASM_OUT|
|00003380| 50 55 54 5f 52 45 47 5f | 50 55 53 48 20 28 66 69 |PUT_REG_|PUSH (fi|
|00003390| 6c 65 2c 20 53 54 52 55 | 43 54 5f 56 41 4c 55 45 |le, STRU|CT_VALUE|
|000033a0| 5f 52 45 47 4e 55 4d 29 | 3b 0d 23 65 6e 64 69 66 |_REGNUM)|;.#endif|
|000033b0| 0d 23 65 6e 64 69 66 0d | 0d 23 69 66 20 30 0d 23 |.#endif.|.#if 0.#|
|000033c0| 69 66 64 65 66 20 53 54 | 41 54 49 43 5f 43 48 41 |ifdef ST|ATIC_CHA|
|000033d0| 49 4e 5f 49 4e 43 4f 4d | 49 4e 47 5f 52 45 47 4e |IN_INCOM|ING_REGN|
|000033e0| 55 4d 0d 20 20 20 20 20 | 20 69 66 20 28 63 78 74 |UM. | if (cxt|
|000033f0| 29 0d 09 41 53 4d 5f 4f | 55 54 50 55 54 5f 52 45 |)..ASM_O|UTPUT_RE|
|00003400| 47 5f 50 55 53 48 20 28 | 66 69 6c 65 2c 20 53 54 |G_PUSH (|file, ST|
|00003410| 41 54 49 43 5f 43 48 41 | 49 4e 5f 49 4e 43 4f 4d |ATIC_CHA|IN_INCOM|
|00003420| 49 4e 47 5f 52 45 47 4e | 55 4d 29 3b 0d 23 65 6c |ING_REGN|UM);.#el|
|00003430| 73 65 0d 23 69 66 64 65 | 66 20 53 54 41 54 49 43 |se.#ifde|f STATIC|
|00003440| 5f 43 48 41 49 4e 5f 52 | 45 47 4e 55 4d 0d 20 20 |_CHAIN_R|EGNUM. |
|00003450| 20 20 20 20 69 66 20 28 | 63 78 74 29 0d 09 41 53 | if (|cxt)..AS|
|00003460| 4d 5f 4f 55 54 50 55 54 | 5f 52 45 47 5f 50 55 53 |M_OUTPUT|_REG_PUS|
|00003470| 48 20 28 66 69 6c 65 2c | 20 53 54 41 54 49 43 5f |H (file,| STATIC_|
|00003480| 43 48 41 49 4e 5f 52 45 | 47 4e 55 4d 29 3b 0d 23 |CHAIN_RE|GNUM);.#|
|00003490| 65 6e 64 69 66 0d 23 65 | 6e 64 69 66 0d 23 65 6e |endif.#e|ndif.#en|
|000034a0| 64 69 66 20 2f 2a 20 30 | 20 2a 2f 0d 0d 20 20 20 |dif /* 0| */.. |
|000034b0| 20 20 20 46 55 4e 43 54 | 49 4f 4e 5f 50 52 4f 46 | FUNCT|ION_PROF|
|000034c0| 49 4c 45 52 20 28 66 69 | 6c 65 2c 20 70 72 6f 66 |ILER (fi|le, prof|
|000034d0| 69 6c 65 5f 6c 61 62 65 | 6c 5f 6e 6f 29 3b 0d 0d |ile_labe|l_no);..|
|000034e0| 23 69 66 20 30 0d 23 69 | 66 64 65 66 20 53 54 41 |#if 0.#i|fdef STA|
|000034f0| 54 49 43 5f 43 48 41 49 | 4e 5f 49 4e 43 4f 4d 49 |TIC_CHAI|N_INCOMI|
|00003500| 4e 47 5f 52 45 47 4e 55 | 4d 0d 20 20 20 20 20 20 |NG_REGNU|M. |
|00003510| 69 66 20 28 63 78 74 29 | 0d 09 41 53 4d 5f 4f 55 |if (cxt)|..ASM_OU|
|00003520| 54 50 55 54 5f 52 45 47 | 5f 50 4f 50 20 28 66 69 |TPUT_REG|_POP (fi|
|00003530| 6c 65 2c 20 53 54 41 54 | 49 43 5f 43 48 41 49 4e |le, STAT|IC_CHAIN|
|00003540| 5f 49 4e 43 4f 4d 49 4e | 47 5f 52 45 47 4e 55 4d |_INCOMIN|G_REGNUM|
|00003550| 29 3b 0d 23 65 6c 73 65 | 0d 23 69 66 64 65 66 20 |);.#else|.#ifdef |
|00003560| 53 54 41 54 49 43 5f 43 | 48 41 49 4e 5f 52 45 47 |STATIC_C|HAIN_REG|
|00003570| 4e 55 4d 0d 20 20 20 20 | 20 20 69 66 20 28 63 78 |NUM. | if (cx|
|00003580| 74 29 0d 09 41 53 4d 5f | 4f 55 54 50 55 54 5f 52 |t)..ASM_|OUTPUT_R|
|00003590| 45 47 5f 50 4f 50 20 28 | 66 69 6c 65 2c 20 53 54 |EG_POP (|file, ST|
|000035a0| 41 54 49 43 5f 43 48 41 | 49 4e 5f 52 45 47 4e 55 |ATIC_CHA|IN_REGNU|
|000035b0| 4d 29 3b 0d 23 65 6e 64 | 69 66 0d 23 65 6e 64 69 |M);.#end|if.#endi|
|000035c0| 66 0d 23 65 6e 64 69 66 | 20 2f 2a 20 30 20 2a 2f |f.#endif| /* 0 */|
|000035d0| 0d 0d 23 69 66 64 65 66 | 20 53 54 52 55 43 54 5f |..#ifdef| STRUCT_|
|000035e0| 56 41 4c 55 45 5f 49 4e | 43 4f 4d 49 4e 47 5f 52 |VALUE_IN|COMING_R|
|000035f0| 45 47 4e 55 4d 0d 20 20 | 20 20 20 20 69 66 20 28 |EGNUM. | if (|
|00003600| 73 76 61 6c 29 0d 09 41 | 53 4d 5f 4f 55 54 50 55 |sval)..A|SM_OUTPU|
|00003610| 54 5f 52 45 47 5f 50 4f | 50 20 28 66 69 6c 65 2c |T_REG_PO|P (file,|
|00003620| 20 53 54 52 55 43 54 5f | 56 41 4c 55 45 5f 49 4e | STRUCT_|VALUE_IN|
|00003630| 43 4f 4d 49 4e 47 5f 52 | 45 47 4e 55 4d 29 3b 0d |COMING_R|EGNUM);.|
|00003640| 23 65 6c 73 65 0d 23 69 | 66 64 65 66 20 53 54 52 |#else.#i|fdef STR|
|00003650| 55 43 54 5f 56 41 4c 55 | 45 5f 52 45 47 4e 55 4d |UCT_VALU|E_REGNUM|
|00003660| 0d 20 20 20 20 20 20 69 | 66 20 28 73 76 61 6c 29 |. i|f (sval)|
|00003670| 0d 09 41 53 4d 5f 4f 55 | 54 50 55 54 5f 52 45 47 |..ASM_OU|TPUT_REG|
|00003680| 5f 50 4f 50 20 28 66 69 | 6c 65 2c 20 53 54 52 55 |_POP (fi|le, STRU|
|00003690| 43 54 5f 56 41 4c 55 45 | 5f 52 45 47 4e 55 4d 29 |CT_VALUE|_REGNUM)|
|000036a0| 3b 0d 23 65 6e 64 69 66 | 0d 23 65 6e 64 69 66 0d |;.#endif|.#endif.|
|000036b0| 20 20 20 20 7d 0d 23 65 | 6e 64 69 66 20 2f 2a 20 | }.#e|ndif /* |
|000036c0| 6e 20 41 50 50 4c 45 5f | 43 20 2a 2f 0d 0d 20 20 |n APPLE_|C */.. |
|000036d0| 70 72 6f 66 69 6c 65 5f | 6c 61 62 65 6c 5f 6e 6f |profile_|label_no|
|000036e0| 2b 2b 3b 0d 7d 0d 0d 2f | 2a 20 4f 75 74 70 75 74 |++;.}../|* Output|
|000036f0| 20 61 73 73 65 6d 62 6c | 65 72 20 63 6f 64 65 20 | assembl|er code |
|00003700| 66 6f 72 20 74 68 65 20 | 65 6e 64 20 6f 66 20 61 |for the |end of a|
|00003710| 20 66 75 6e 63 74 69 6f | 6e 2e 0d 20 20 20 46 6f | functio|n.. Fo|
|00003720| 72 20 63 6c 61 72 69 74 | 79 2c 20 61 72 67 73 20 |r clarit|y, args |
|00003730| 61 72 65 20 73 61 6d 65 | 20 61 73 20 74 68 6f 73 |are same| as thos|
|00003740| 65 20 6f 66 20 60 66 69 | 6e 61 6c 5f 73 74 61 72 |e of `fi|nal_star|
|00003750| 74 5f 66 75 6e 63 74 69 | 6f 6e 27 0d 20 20 20 65 |t_functi|on'. e|
|00003760| 76 65 6e 20 74 68 6f 75 | 67 68 20 6e 6f 74 20 61 |ven thou|gh not a|
|00003770| 6c 6c 20 6f 66 20 74 68 | 65 6d 20 61 72 65 20 6e |ll of th|em are n|
|00003780| 65 65 64 65 64 2e 20 20 | 2a 2f 0d 0d 76 6f 69 64 |eeded. |*/..void|
|00003790| 0d 66 69 6e 61 6c 5f 65 | 6e 64 5f 66 75 6e 63 74 |.final_e|nd_funct|
|000037a0| 69 6f 6e 20 28 66 69 72 | 73 74 2c 20 66 69 6c 65 |ion (fir|st, file|
|000037b0| 2c 20 77 72 69 74 65 5f | 73 79 6d 62 6f 6c 73 2c |, write_|symbols,|
|000037c0| 20 6f 70 74 69 6d 69 7a | 65 29 0d 20 20 20 20 20 | optimiz|e). |
|000037d0| 72 74 78 20 66 69 72 73 | 74 3b 0d 20 20 20 20 20 |rtx firs|t;. |
|000037e0| 46 49 4c 45 20 2a 66 69 | 6c 65 3b 0d 20 20 20 20 |FILE *fi|le;. |
|000037f0| 20 65 6e 75 6d 20 64 65 | 62 75 67 67 65 72 20 77 | enum de|bugger w|
|00003800| 72 69 74 65 5f 73 79 6d | 62 6f 6c 73 3b 0d 20 20 |rite_sym|bols;. |
|00003810| 20 20 20 69 6e 74 20 6f | 70 74 69 6d 69 7a 65 3b | int o|ptimize;|
|00003820| 0d 7b 0d 20 20 69 66 20 | 28 61 70 70 5f 6f 6e 29 |.{. if |(app_on)|
|00003830| 0d 20 20 20 20 7b 0d 20 | 20 20 20 20 20 66 70 72 |. {. | fpr|
|00003840| 69 6e 74 66 20 28 66 69 | 6c 65 2c 20 41 53 4d 5f |intf (fi|le, ASM_|
|00003850| 41 50 50 5f 4f 46 46 29 | 3b 0d 20 20 20 20 20 20 |APP_OFF)|;. |
|00003860| 61 70 70 5f 6f 6e 20 3d | 20 30 3b 0d 20 20 20 20 |app_on =| 0;. |
|00003870| 7d 0d 0d 23 69 66 6e 64 | 65 66 20 4d 50 57 0d 20 |}..#ifnd|ef MPW. |
|00003880| 20 2f 2a 20 4d 50 57 20 | 63 61 6e 27 74 20 64 6f | /* MPW |can't do|
|00003890| 20 61 6e 79 74 68 69 6e | 67 20 77 69 74 68 20 67 | anythin|g with g|
|000038a0| 64 62 20 73 79 6d 62 6f | 6c 20 73 74 75 66 66 2e |db symbo|l stuff.|
|000038b0| 20 2a 2f 0d 20 20 69 66 | 20 28 77 72 69 74 65 5f | */. if| (write_|
|000038c0| 73 79 6d 62 6f 6c 73 20 | 3d 3d 20 47 44 42 5f 44 |symbols |== GDB_D|
|000038d0| 45 42 55 47 29 0d 20 20 | 20 20 66 70 72 69 6e 74 |EBUG). | fprint|
|000038e0| 66 20 28 66 69 6c 65 2c | 20 22 5c 74 2e 67 64 62 |f (file,| "\t.gdb|
|000038f0| 65 6e 64 20 25 64 5c 6e | 22 2c 20 70 65 6e 64 69 |end %d\n|", pendi|
|00003900| 6e 67 5f 62 6c 6f 63 6b | 73 5b 30 5d 29 3b 0d 23 |ng_block|s[0]);.#|
|00003910| 65 6e 64 69 66 20 2f 2a | 20 6e 20 4d 50 57 20 2a |endif /*| n MPW *|
|00003920| 2f 0d 0d 23 69 66 64 65 | 66 20 53 44 42 5f 44 45 |/..#ifde|f SDB_DE|
|00003930| 42 55 47 47 49 4e 47 5f | 49 4e 46 4f 0d 20 20 69 |BUGGING_|INFO. i|
|00003940| 66 20 28 77 72 69 74 65 | 5f 73 79 6d 62 6f 6c 73 |f (write|_symbols|
|00003950| 20 3d 3d 20 53 44 42 5f | 44 45 42 55 47 29 0d 20 | == SDB_|DEBUG). |
|00003960| 20 20 20 73 64 62 6f 75 | 74 5f 65 6e 64 5f 66 75 | sdbou|t_end_fu|
|00003970| 6e 63 74 69 6f 6e 20 28 | 6c 61 73 74 5f 6c 69 6e |nction (|last_lin|
|00003980| 65 6e 75 6d 29 3b 0d 23 | 65 6e 64 69 66 0d 0d 23 |enum);.#|endif..#|
|00003990| 69 66 64 65 66 20 46 55 | 4e 43 54 49 4f 4e 5f 45 |ifdef FU|NCTION_E|
|000039a0| 50 49 4c 4f 47 55 45 0d | 20 20 2f 2a 20 46 69 6e |PILOGUE.| /* Fin|
|000039b0| 61 6c 6c 79 2c 20 6f 75 | 74 70 75 74 20 74 68 65 |ally, ou|tput the|
|000039c0| 20 66 75 6e 63 74 69 6f | 6e 20 65 70 69 6c 6f 67 | functio|n epilog|
|000039d0| 75 65 3a 0d 20 20 20 20 | 20 63 6f 64 65 20 74 6f |ue:. | code to|
|000039e0| 20 72 65 73 74 6f 72 65 | 20 74 68 65 20 73 74 61 | restore| the sta|
|000039f0| 63 6b 20 66 72 61 6d 65 | 20 61 6e 64 20 72 65 74 |ck frame| and ret|
|00003a00| 75 72 6e 20 74 6f 20 74 | 68 65 20 63 61 6c 6c 65 |urn to t|he calle|
|00003a10| 72 2e 20 20 2a 2f 0d 20 | 20 46 55 4e 43 54 49 4f |r. */. | FUNCTIO|
|00003a20| 4e 5f 45 50 49 4c 4f 47 | 55 45 20 28 66 69 6c 65 |N_EPILOG|UE (file|
|00003a30| 2c 20 67 65 74 5f 66 72 | 61 6d 65 5f 73 69 7a 65 |, get_fr|ame_size|
|00003a40| 20 28 29 29 3b 0d 23 65 | 6e 64 69 66 0d 0d 23 69 | ());.#e|ndif..#i|
|00003a50| 66 64 65 66 20 53 44 42 | 5f 44 45 42 55 47 47 49 |fdef SDB|_DEBUGGI|
|00003a60| 4e 47 5f 49 4e 46 4f 0d | 20 20 69 66 20 28 77 72 |NG_INFO.| if (wr|
|00003a70| 69 74 65 5f 73 79 6d 62 | 6f 6c 73 20 3d 3d 20 53 |ite_symb|ols == S|
|00003a80| 44 42 5f 44 45 42 55 47 | 29 0d 20 20 20 20 73 64 |DB_DEBUG|). sd|
|00003a90| 62 6f 75 74 5f 65 6e 64 | 5f 65 70 69 6c 6f 67 75 |bout_end|_epilogu|
|00003aa0| 65 20 28 29 3b 0d 23 65 | 6e 64 69 66 0d 23 69 66 |e ();.#e|ndif.#if|
|00003ab0| 64 65 66 20 41 50 50 4c | 45 5f 48 41 58 0d 20 20 |def APPL|E_HAX. |
|00003ac0| 2f 2a 20 49 74 20 69 73 | 20 73 6f 6d 65 74 69 6d |/* It is| sometim|
|00003ad0| 65 73 20 75 73 65 66 75 | 6c 20 74 6f 20 62 65 20 |es usefu|l to be |
|00003ae0| 61 62 6c 65 20 74 6f 20 | 70 72 69 6e 74 20 73 6f |able to |print so|
|00003af0| 6d 65 74 68 69 6e 67 20 | 73 70 65 63 69 61 6c 20 |mething |special |
|00003b00| 61 74 0d 20 20 20 20 20 | 74 68 65 20 65 6e 64 20 |at. |the end |
|00003b10| 6f 66 20 61 20 66 75 6e | 63 74 69 6f 6e 2e 20 2a |of a fun|ction. *|
|00003b20| 2f 0d 23 69 66 64 65 66 | 20 41 53 4d 5f 46 55 4e |/.#ifdef| ASM_FUN|
|00003b30| 43 54 49 4f 4e 5f 45 4e | 44 0d 20 20 41 53 4d 5f |CTION_EN|D. ASM_|
|00003b40| 46 55 4e 43 54 49 4f 4e | 5f 45 4e 44 28 61 73 6d |FUNCTION|_END(asm|
|00003b50| 5f 6f 75 74 5f 66 69 6c | 65 29 3b 0d 23 65 6e 64 |_out_fil|e);.#end|
|00003b60| 69 66 0d 23 65 6e 64 69 | 66 20 2f 2a 20 41 50 50 |if.#endi|f /* APP|
|00003b70| 4c 45 5f 48 41 58 20 2a | 2f 0d 0d 20 20 2f 2a 20 |LE_HAX *|/.. /* |
|00003b80| 49 66 20 46 55 4e 43 54 | 49 4f 4e 5f 45 50 49 4c |If FUNCT|ION_EPIL|
|00003b90| 4f 47 55 45 20 69 73 20 | 6e 6f 74 20 64 65 66 69 |OGUE is |not defi|
|00003ba0| 6e 65 64 2c 20 74 68 65 | 6e 20 74 68 65 20 66 75 |ned, the|n the fu|
|00003bb0| 6e 63 74 69 6f 6e 20 62 | 6f 64 79 0d 20 20 20 20 |nction b|ody. |
|00003bc0| 20 69 74 73 65 6c 66 20 | 63 6f 6e 74 61 69 6e 73 | itself |contains|
|00003bd0| 20 72 65 74 75 72 6e 20 | 69 6e 73 74 72 75 63 74 | return |instruct|
|00003be0| 69 6f 6e 73 20 77 68 65 | 72 65 76 65 72 20 6e 65 |ions whe|rever ne|
|00003bf0| 65 64 65 64 2e 20 20 2a | 2f 0d 7d 0d 0c 0d 2f 2a |eded. *|/.}.../*|
|00003c00| 20 4f 75 74 70 75 74 20 | 61 73 73 65 6d 62 6c 65 | Output |assemble|
|00003c10| 72 20 63 6f 64 65 20 66 | 6f 72 20 73 6f 6d 65 20 |r code f|or some |
|00003c20| 69 6e 73 6e 73 3a 20 61 | 6c 6c 20 6f 72 20 70 61 |insns: a|ll or pa|
|00003c30| 72 74 20 6f 66 20 61 20 | 66 75 6e 63 74 69 6f 6e |rt of a |function|
|00003c40| 2e 0d 20 20 20 46 6f 72 | 20 64 65 73 63 72 69 70 |.. For| descrip|
|00003c50| 74 69 6f 6e 20 6f 66 20 | 61 72 67 73 2c 20 73 65 |tion of |args, se|
|00003c60| 65 20 60 66 69 6e 61 6c | 5f 73 74 61 72 74 5f 66 |e `final|_start_f|
|00003c70| 75 6e 63 74 69 6f 6e 27 | 2c 20 61 62 6f 76 65 2e |unction'|, above.|
|00003c80| 0d 0d 20 20 20 50 52 45 | 53 43 41 4e 20 69 73 20 |.. PRE|SCAN is |
|00003c90| 31 20 69 66 20 77 65 20 | 61 72 65 20 6e 6f 74 20 |1 if we |are not |
|00003ca0| 72 65 61 6c 6c 79 20 6f | 75 74 70 75 74 74 69 6e |really o|utputtin|
|00003cb0| 67 2c 0d 20 20 20 20 20 | 6a 75 73 74 20 73 63 61 |g,. |just sca|
|00003cc0| 6e 6e 69 6e 67 20 61 73 | 20 69 66 20 77 65 20 77 |nning as| if we w|
|00003cd0| 65 72 65 20 6f 75 74 70 | 75 74 74 69 6e 67 2e 0d |ere outp|utting..|
|00003ce0| 20 20 20 50 72 65 73 63 | 61 6e 6e 69 6e 67 20 64 | Presc|anning d|
|00003cf0| 65 6c 65 74 65 73 20 61 | 6e 64 20 72 65 61 72 72 |eletes a|nd rearr|
|00003d00| 61 6e 67 65 73 20 69 6e | 73 6e 73 20 6a 75 73 74 |anges in|sns just|
|00003d10| 20 6c 69 6b 65 20 6f 72 | 64 69 6e 61 72 79 20 6f | like or|dinary o|
|00003d20| 75 74 70 75 74 2e 0d 20 | 20 20 50 52 45 53 43 41 |utput.. | PRESCA|
|00003d30| 4e 20 69 73 20 2d 32 20 | 69 66 20 77 65 20 61 72 |N is -2 |if we ar|
|00003d40| 65 20 6f 75 74 70 75 74 | 74 69 6e 67 20 61 66 74 |e output|ting aft|
|00003d50| 65 72 20 68 61 76 69 6e | 67 20 70 72 65 73 63 61 |er havin|g presca|
|00003d60| 6e 6e 65 64 2e 0d 20 20 | 20 49 6e 20 74 68 69 73 |nned.. | In this|
|00003d70| 20 63 61 73 65 2c 20 64 | 6f 6e 27 74 20 74 72 79 | case, d|on't try|
|00003d80| 20 74 6f 20 64 65 6c 65 | 74 65 20 6f 72 20 72 65 | to dele|te or re|
|00003d90| 61 72 72 61 6e 67 65 20 | 69 6e 73 6e 73 0d 20 20 |arrange |insns. |
|00003da0| 20 62 65 63 61 75 73 65 | 20 74 68 61 74 20 68 61 | because| that ha|
|00003db0| 73 20 61 6c 72 65 61 64 | 79 20 62 65 65 6e 20 64 |s alread|y been d|
|00003dc0| 6f 6e 65 2e 0d 20 20 20 | 50 72 65 73 63 61 6e 6e |one.. |Prescann|
|00003dd0| 69 6e 67 20 69 73 20 64 | 6f 6e 65 20 6f 6e 6c 79 |ing is d|one only|
|00003de0| 20 6f 6e 20 63 65 72 74 | 61 69 6e 20 6d 61 63 68 | on cert|ain mach|
|00003df0| 69 6e 65 73 2e 20 20 2a | 2f 0d 0d 76 6f 69 64 0d |ines. *|/..void.|
|00003e00| 66 69 6e 61 6c 20 28 66 | 69 72 73 74 2c 20 66 69 |final (f|irst, fi|
|00003e10| 6c 65 2c 20 77 72 69 74 | 65 5f 73 79 6d 62 6f 6c |le, writ|e_symbol|
|00003e20| 73 2c 20 6f 70 74 69 6d | 69 7a 65 2c 20 70 72 65 |s, optim|ize, pre|
|00003e30| 73 63 61 6e 29 0d 20 20 | 20 20 20 72 74 78 20 66 |scan). | rtx f|
|00003e40| 69 72 73 74 3b 0d 20 20 | 20 20 20 46 49 4c 45 20 |irst;. | FILE |
|00003e50| 2a 66 69 6c 65 3b 0d 20 | 20 20 20 20 65 6e 75 6d |*file;. | enum|
|00003e60| 20 64 65 62 75 67 67 65 | 72 20 77 72 69 74 65 5f | debugge|r write_|
|00003e70| 73 79 6d 62 6f 6c 73 3b | 0d 20 20 20 20 20 69 6e |symbols;|. in|
|00003e80| 74 20 6f 70 74 69 6d 69 | 7a 65 3b 0d 20 20 20 20 |t optimi|ze;. |
|00003e90| 20 69 6e 74 20 70 72 65 | 73 63 61 6e 3b 0d 7b 0d | int pre|scan;.{.|
|00003ea0| 20 20 72 65 67 69 73 74 | 65 72 20 72 74 78 20 69 | regist|er rtx i|
|00003eb0| 6e 73 6e 3b 0d 0d 20 20 | 6c 61 73 74 5f 69 67 6e |nsn;.. |last_ign|
|00003ec0| 6f 72 65 64 5f 63 6f 6d | 70 61 72 65 20 3d 20 30 |ored_com|pare = 0|
|00003ed0| 3b 0d 20 20 6e 65 77 5f | 62 6c 6f 63 6b 20 3d 20 |;. new_|block = |
|00003ee0| 31 3b 0d 0d 20 20 69 6e | 69 74 5f 72 65 63 6f 67 |1;.. in|it_recog|
|00003ef0| 20 28 29 3b 0d 0d 20 20 | 43 43 5f 53 54 41 54 55 | ();.. |CC_STATU|
|00003f00| 53 5f 49 4e 49 54 3b 0d | 0d 20 20 66 6f 72 20 28 |S_INIT;.|. for (|
|00003f10| 69 6e 73 6e 20 3d 20 4e | 45 58 54 5f 49 4e 53 4e |insn = N|EXT_INSN|
|00003f20| 20 28 66 69 72 73 74 29 | 3b 20 69 6e 73 6e 3b 29 | (first)|; insn;)|
|00003f30| 0d 20 20 20 20 69 6e 73 | 6e 20 3d 20 66 69 6e 61 |. ins|n = fina|
|00003f40| 6c 5f 73 63 61 6e 5f 69 | 6e 73 6e 20 28 69 6e 73 |l_scan_i|nsn (ins|
|00003f50| 6e 2c 20 66 69 6c 65 2c | 20 77 72 69 74 65 5f 73 |n, file,| write_s|
|00003f60| 79 6d 62 6f 6c 73 2c 20 | 6f 70 74 69 6d 69 7a 65 |ymbols, |optimize|
|00003f70| 2c 0d 09 09 09 20 20 20 | 20 70 72 65 73 63 61 6e |,.... | prescan|
|00003f80| 2c 20 30 29 3b 0d 7d 0d | 0c 0d 2f 2a 20 54 68 65 |, 0);.}.|../* The|
|00003f90| 20 66 69 6e 61 6c 20 73 | 63 61 6e 20 66 6f 72 20 | final s|can for |
|00003fa0| 6f 6e 65 20 69 6e 73 6e | 2c 20 49 4e 53 4e 2e 0d |one insn|, INSN..|
|00003fb0| 20 20 20 41 72 67 73 20 | 61 72 65 20 73 61 6d 65 | Args |are same|
|00003fc0| 20 61 73 20 69 6e 20 60 | 66 69 6e 61 6c 27 2c 20 | as in `|final', |
|00003fd0| 65 78 63 65 70 74 20 74 | 68 61 74 20 49 4e 53 4e |except t|hat INSN|
|00003fe0| 0d 20 20 20 69 73 20 74 | 68 65 20 69 6e 73 6e 20 |. is t|he insn |
|00003ff0| 62 65 69 6e 67 20 73 63 | 61 6e 6e 65 64 2e 0d 20 |being sc|anned.. |
|00004000| 20 20 56 61 6c 75 65 20 | 72 65 74 75 72 6e 65 64 | Value |returned|
|00004010| 20 69 73 20 74 68 65 20 | 6e 65 78 74 20 69 6e 73 | is the |next ins|
|00004020| 6e 20 74 6f 20 62 65 20 | 73 63 61 6e 6e 65 64 2e |n to be |scanned.|
|00004030| 0d 0d 20 20 20 4e 4f 50 | 45 45 50 48 4f 4c 45 53 |.. NOP|EEPHOLES|
|00004040| 20 69 73 20 74 68 65 20 | 66 6c 61 67 20 74 6f 20 | is the |flag to |
|00004050| 64 69 73 61 6c 6c 6f 77 | 20 70 65 65 70 68 6f 6c |disallow| peephol|
|00004060| 65 20 70 72 6f 63 65 73 | 73 69 6e 67 20 28 63 75 |e proces|sing (cu|
|00004070| 72 72 65 6e 74 6c 79 0d | 20 20 20 75 73 65 64 20 |rrently.| used |
|00004080| 66 6f 72 20 77 69 74 68 | 69 6e 20 64 65 6c 61 79 |for with|in delay|
|00004090| 65 64 20 62 72 61 6e 63 | 68 20 73 65 71 75 65 6e |ed branc|h sequen|
|000040a0| 63 65 20 6f 75 74 70 75 | 74 29 2e 20 20 2a 2f 0d |ce outpu|t). */.|
|000040b0| 0d 72 74 78 0d 66 69 6e | 61 6c 5f 73 63 61 6e 5f |.rtx.fin|al_scan_|
|000040c0| 69 6e 73 6e 20 20 28 69 | 6e 73 6e 2c 20 66 69 6c |insn (i|nsn, fil|
|000040d0| 65 2c 20 77 72 69 74 65 | 5f 73 79 6d 62 6f 6c 73 |e, write|_symbols|
|000040e0| 2c 20 6f 70 74 69 6d 69 | 7a 65 2c 20 70 72 65 73 |, optimi|ze, pres|
|000040f0| 63 61 6e 2c 20 6e 6f 70 | 65 65 70 68 6f 6c 65 73 |can, nop|eepholes|
|00004100| 29 0d 20 20 20 20 20 72 | 74 78 20 69 6e 73 6e 3b |). r|tx insn;|
|00004110| 0d 20 20 20 20 20 46 49 | 4c 45 20 2a 66 69 6c 65 |. FI|LE *file|
|00004120| 3b 0d 20 20 20 20 20 65 | 6e 75 6d 20 64 65 62 75 |;. e|num debu|
|00004130| 67 67 65 72 20 77 72 69 | 74 65 5f 73 79 6d 62 6f |gger wri|te_symbo|
|00004140| 6c 73 3b 0d 20 20 20 20 | 20 69 6e 74 20 6f 70 74 |ls;. | int opt|
|00004150| 69 6d 69 7a 65 3b 0d 20 | 20 20 20 20 69 6e 74 20 |imize;. | int |
|00004160| 70 72 65 73 63 61 6e 3b | 0d 20 20 20 20 20 69 6e |prescan;|. in|
|00004170| 74 20 6e 6f 70 65 65 70 | 68 6f 6c 65 73 3b 0d 7b |t nopeep|holes;.{|
|00004180| 0d 20 20 72 65 67 69 73 | 74 65 72 20 69 6e 74 20 |. regis|ter int |
|00004190| 69 3b 0d 20 20 73 77 69 | 74 63 68 20 28 47 45 54 |i;. swi|tch (GET|
|000041a0| 5f 43 4f 44 45 20 28 69 | 6e 73 6e 29 29 0d 20 20 |_CODE (i|nsn)). |
|000041b0| 20 20 7b 0d 20 20 20 20 | 63 61 73 65 20 4e 4f 54 | {. |case NOT|
|000041c0| 45 3a 0d 20 20 20 20 20 | 20 69 66 20 28 70 72 65 |E:. | if (pre|
|000041d0| 73 63 61 6e 20 3e 20 30 | 29 0d 09 62 72 65 61 6b |scan > 0|)..break|
|000041e0| 3b 0d 20 20 20 20 20 20 | 69 66 20 28 77 72 69 74 |;. |if (writ|
|000041f0| 65 5f 73 79 6d 62 6f 6c | 73 20 3d 3d 20 4e 4f 5f |e_symbol|s == NO_|
|00004200| 44 45 42 55 47 29 0d 09 | 62 72 65 61 6b 3b 0d 20 |DEBUG)..|break;. |
|00004210| 20 20 20 20 20 69 66 20 | 28 4e 4f 54 45 5f 4c 49 | if |(NOTE_LI|
|00004220| 4e 45 5f 4e 55 4d 42 45 | 52 20 28 69 6e 73 6e 29 |NE_NUMBE|R (insn)|
|00004230| 20 3d 3d 20 4e 4f 54 45 | 5f 49 4e 53 4e 5f 46 55 | == NOTE|_INSN_FU|
|00004240| 4e 43 54 49 4f 4e 5f 42 | 45 47 29 0d 09 7b 0d 23 |NCTION_B|EG)..{.#|
|00004250| 69 66 64 65 66 20 53 44 | 42 5f 44 45 42 55 47 47 |ifdef SD|B_DEBUGG|
|00004260| 49 4e 47 5f 49 4e 46 4f | 0d 09 20 20 69 66 20 28 |ING_INFO|.. if (|
|00004270| 77 72 69 74 65 5f 73 79 | 6d 62 6f 6c 73 20 3d 3d |write_sy|mbols ==|
|00004280| 20 53 44 42 5f 44 45 42 | 55 47 29 0d 09 20 20 20 | SDB_DEB|UG).. |
|00004290| 20 73 64 62 6f 75 74 5f | 62 65 67 69 6e 5f 66 75 | sdbout_|begin_fu|
|000042a0| 6e 63 74 69 6f 6e 20 28 | 6c 61 73 74 5f 6c 69 6e |nction (|last_lin|
|000042b0| 65 6e 75 6d 29 3b 0d 23 | 65 6e 64 69 66 0d 09 20 |enum);.#|endif.. |
|000042c0| 20 62 72 65 61 6b 3b 0d | 09 7d 0d 20 20 20 20 20 | break;.|.}. |
|000042d0| 20 69 66 20 28 4e 4f 54 | 45 5f 4c 49 4e 45 5f 4e | if (NOT|E_LINE_N|
|000042e0| 55 4d 42 45 52 20 28 69 | 6e 73 6e 29 20 3d 3d 20 |UMBER (i|nsn) == |
|000042f0| 4e 4f 54 45 5f 49 4e 53 | 4e 5f 4c 4f 4f 50 5f 42 |NOTE_INS|N_LOOP_B|
|00004300| 45 47 0d 09 20 20 7c 7c | 20 4e 4f 54 45 5f 4c 49 |EG.. ||| NOTE_LI|
|00004310| 4e 45 5f 4e 55 4d 42 45 | 52 20 28 69 6e 73 6e 29 |NE_NUMBE|R (insn)|
|00004320| 20 3d 3d 20 4e 4f 54 45 | 5f 49 4e 53 4e 5f 4c 4f | == NOTE|_INSN_LO|
|00004330| 4f 50 5f 45 4e 44 29 0d | 09 62 72 65 61 6b 3b 0d |OP_END).|.break;.|
|00004340| 20 20 20 20 20 20 69 66 | 20 28 4e 4f 54 45 5f 4c | if| (NOTE_L|
|00004350| 49 4e 45 5f 4e 55 4d 42 | 45 52 20 28 69 6e 73 6e |INE_NUMB|ER (insn|
|00004360| 29 20 3d 3d 20 4e 4f 54 | 45 5f 49 4e 53 4e 5f 44 |) == NOT|E_INSN_D|
|00004370| 45 4c 45 54 45 44 29 0d | 09 62 72 65 61 6b 3b 09 |ELETED).|.break;.|
|00004380| 09 09 2f 2a 20 41 6e 20 | 69 6e 73 6e 20 74 68 61 |../* An |insn tha|
|00004390| 74 20 77 61 73 20 22 64 | 65 6c 65 74 65 64 22 20 |t was "d|eleted" |
|000043a0| 2a 2f 0d 20 20 20 20 20 | 20 69 66 20 28 61 70 70 |*/. | if (app|
|000043b0| 5f 6f 6e 29 0d 09 7b 0d | 09 20 20 66 70 72 69 6e |_on)..{.|. fprin|
|000043c0| 74 66 20 28 66 69 6c 65 | 2c 20 41 53 4d 5f 41 50 |tf (file|, ASM_AP|
|000043d0| 50 5f 4f 46 46 29 3b 0d | 09 20 20 61 70 70 5f 6f |P_OFF);.|. app_o|
|000043e0| 6e 20 3d 20 30 3b 0d 09 | 7d 0d 20 20 20 20 20 20 |n = 0;..|}. |
|000043f0| 69 66 20 28 4e 4f 54 45 | 5f 4c 49 4e 45 5f 4e 55 |if (NOTE|_LINE_NU|
|00004400| 4d 42 45 52 20 28 69 6e | 73 6e 29 20 3d 3d 20 4e |MBER (in|sn) == N|
|00004410| 4f 54 45 5f 49 4e 53 4e | 5f 42 4c 4f 43 4b 5f 42 |OTE_INSN|_BLOCK_B|
|00004420| 45 47 29 0d 09 7b 0d 09 | 20 20 2f 2a 20 42 65 67 |EG)..{..| /* Beg|
|00004430| 69 6e 6e 69 6e 67 20 6f | 66 20 61 20 73 79 6d 62 |inning o|f a symb|
|00004440| 6f 6c 2d 62 6c 6f 63 6b | 2e 20 20 41 73 73 69 67 |ol-block|. Assig|
|00004450| 6e 20 69 74 20 61 20 73 | 65 71 75 65 6e 63 65 20 |n it a s|equence |
|00004460| 6e 75 6d 62 65 72 0d 09 | 20 20 20 20 20 61 6e 64 |number..| and|
|00004470| 20 70 75 73 68 20 74 68 | 65 20 6e 75 6d 62 65 72 | push th|e number|
|00004480| 20 6f 6e 74 6f 20 74 68 | 65 20 73 74 61 63 6b 20 | onto th|e stack |
|00004490| 50 45 4e 44 49 4e 47 5f | 42 4c 4f 43 4b 53 2e 20 |PENDING_|BLOCKS. |
|000044a0| 20 2a 2f 0d 0d 09 20 20 | 69 66 20 28 62 6c 6f 63 | */... |if (bloc|
|000044b0| 6b 5f 64 65 70 74 68 20 | 3d 3d 20 6d 61 78 5f 62 |k_depth |== max_b|
|000044c0| 6c 6f 63 6b 5f 64 65 70 | 74 68 29 0d 09 20 20 20 |lock_dep|th).. |
|000044d0| 20 7b 0d 09 20 20 20 20 | 20 20 2f 2a 20 50 45 4e | {.. | /* PEN|
|000044e0| 44 49 4e 47 5f 42 4c 4f | 43 4b 53 20 69 73 20 66 |DING_BLO|CKS is f|
|000044f0| 75 6c 6c 3b 20 6d 61 6b | 65 20 69 74 20 6c 6f 6e |ull; mak|e it lon|
|00004500| 67 65 72 2e 20 20 2a 2f | 0d 09 20 20 20 20 20 20 |ger. */|.. |
|00004510| 6d 61 78 5f 62 6c 6f 63 | 6b 5f 64 65 70 74 68 20 |max_bloc|k_depth |
|00004520| 2a 3d 20 32 3b 0d 09 20 | 20 20 20 20 20 70 65 6e |*= 2;.. | pen|
|00004530| 64 69 6e 67 5f 62 6c 6f | 63 6b 73 0d 09 09 3d 20 |ding_blo|cks...= |
|00004540| 28 69 6e 74 20 2a 29 20 | 78 72 65 61 6c 6c 6f 63 |(int *) |xrealloc|
|00004550| 20 28 70 65 6e 64 69 6e | 67 5f 62 6c 6f 63 6b 73 | (pendin|g_blocks|
|00004560| 2c 0d 09 09 09 09 20 20 | 20 20 6d 61 78 5f 62 6c |,..... | max_bl|
|00004570| 6f 63 6b 5f 64 65 70 74 | 68 20 2a 20 73 69 7a 65 |ock_dept|h * size|
|00004580| 6f 66 20 28 69 6e 74 29 | 29 3b 0d 09 20 20 20 20 |of (int)|);.. |
|00004590| 7d 0d 09 20 20 70 65 6e | 64 69 6e 67 5f 62 6c 6f |}.. pen|ding_blo|
|000045a0| 63 6b 73 5b 62 6c 6f 63 | 6b 5f 64 65 70 74 68 2b |cks[bloc|k_depth+|
|000045b0| 2b 5d 20 3d 20 6e 65 78 | 74 5f 62 6c 6f 63 6b 5f |+] = nex|t_block_|
|000045c0| 69 6e 64 65 78 3b 0d 0d | 09 20 20 2f 2a 20 4f 75 |index;..|. /* Ou|
|000045d0| 74 70 75 74 20 64 65 62 | 75 67 67 69 6e 67 20 69 |tput deb|ugging i|
|000045e0| 6e 66 6f 20 61 62 6f 75 | 74 20 74 68 65 20 73 79 |nfo abou|t the sy|
|000045f0| 6d 62 6f 6c 2d 62 6c 6f | 63 6b 20 62 65 67 69 6e |mbol-blo|ck begin|
|00004600| 6e 69 6e 67 2e 20 20 2a | 2f 0d 0d 23 69 66 64 65 |ning. *|/..#ifde|
|00004610| 66 20 53 44 42 5f 44 45 | 42 55 47 47 49 4e 47 5f |f SDB_DE|BUGGING_|
|00004620| 49 4e 46 4f 0d 09 20 20 | 69 66 20 28 77 72 69 74 |INFO.. |if (writ|
|00004630| 65 5f 73 79 6d 62 6f 6c | 73 20 3d 3d 20 53 44 42 |e_symbol|s == SDB|
|00004640| 5f 44 45 42 55 47 29 0d | 09 20 20 20 20 73 64 62 |_DEBUG).|. sdb|
|00004650| 6f 75 74 5f 62 65 67 69 | 6e 5f 62 6c 6f 63 6b 20 |out_begi|n_block |
|00004660| 28 66 69 6c 65 2c 20 6c | 61 73 74 5f 6c 69 6e 65 |(file, l|ast_line|
|00004670| 6e 75 6d 2c 20 6e 65 78 | 74 5f 62 6c 6f 63 6b 5f |num, nex|t_block_|
|00004680| 69 6e 64 65 78 29 3b 0d | 23 65 6e 64 69 66 0d 23 |index);.|#endif.#|
|00004690| 69 66 64 65 66 20 44 42 | 58 5f 44 45 42 55 47 47 |ifdef DB|X_DEBUGG|
|000046a0| 49 4e 47 5f 49 4e 46 4f | 0d 09 20 20 69 66 20 28 |ING_INFO|.. if (|
|000046b0| 77 72 69 74 65 5f 73 79 | 6d 62 6f 6c 73 20 3d 3d |write_sy|mbols ==|
|000046c0| 20 44 42 58 5f 44 45 42 | 55 47 29 0d 09 20 20 20 | DBX_DEB|UG).. |
|000046d0| 20 41 53 4d 5f 4f 55 54 | 50 55 54 5f 49 4e 54 45 | ASM_OUT|PUT_INTE|
|000046e0| 52 4e 41 4c 5f 4c 41 42 | 45 4c 20 28 66 69 6c 65 |RNAL_LAB|EL (file|
|000046f0| 2c 20 22 4c 42 42 22 2c | 20 6e 65 78 74 5f 62 6c |, "LBB",| next_bl|
|00004700| 6f 63 6b 5f 69 6e 64 65 | 78 29 3b 0d 23 65 6e 64 |ock_inde|x);.#end|
|00004710| 69 66 0d 09 20 20 69 66 | 20 28 77 72 69 74 65 5f |if.. if| (write_|
|00004720| 73 79 6d 62 6f 6c 73 20 | 3d 3d 20 47 44 42 5f 44 |symbols |== GDB_D|
|00004730| 45 42 55 47 29 0d 09 20 | 20 20 20 66 70 72 69 6e |EBUG).. | fprin|
|00004740| 74 66 20 28 66 69 6c 65 | 2c 20 22 5c 74 2e 67 64 |tf (file|, "\t.gd|
|00004750| 62 62 65 67 20 25 64 5c | 6e 22 2c 20 6e 65 78 74 |bbeg %d\|n", next|
|00004760| 5f 62 6c 6f 63 6b 5f 69 | 6e 64 65 78 29 3b 0d 0d |_block_i|ndex);..|
|00004770| 09 20 20 6e 65 78 74 5f | 62 6c 6f 63 6b 5f 69 6e |. next_|block_in|
|00004780| 64 65 78 2b 2b 3b 0d 09 | 7d 0d 20 20 20 20 20 20 |dex++;..|}. |
|00004790| 65 6c 73 65 20 69 66 20 | 28 4e 4f 54 45 5f 4c 49 |else if |(NOTE_LI|
|000047a0| 4e 45 5f 4e 55 4d 42 45 | 52 20 28 69 6e 73 6e 29 |NE_NUMBE|R (insn)|
|000047b0| 20 3d 3d 20 4e 4f 54 45 | 5f 49 4e 53 4e 5f 42 4c | == NOTE|_INSN_BL|
|000047c0| 4f 43 4b 5f 45 4e 44 29 | 0d 09 7b 0d 09 20 20 2f |OCK_END)|..{.. /|
|000047d0| 2a 20 45 6e 64 20 6f 66 | 20 61 20 73 79 6d 62 6f |* End of| a symbo|
|000047e0| 6c 2d 62 6c 6f 63 6b 2e | 20 20 50 6f 70 20 69 74 |l-block.| Pop it|
|000047f0| 73 20 73 65 71 75 65 6e | 63 65 20 6e 75 6d 62 65 |s sequen|ce numbe|
|00004800| 72 20 6f 66 66 0d 09 20 | 20 20 20 20 50 45 4e 44 |r off.. | PEND|
|00004810| 49 4e 47 5f 42 4c 4f 43 | 4b 53 20 61 6e 64 20 6f |ING_BLOC|KS and o|
|00004820| 75 74 70 75 74 20 64 65 | 62 75 67 67 69 6e 67 20 |utput de|bugging |
|00004830| 69 6e 66 6f 20 62 61 73 | 65 64 20 6f 6e 20 74 68 |info bas|ed on th|
|00004840| 61 74 2e 20 20 2a 2f 0d | 0d 09 20 20 2d 2d 62 6c |at. */.|.. --bl|
|00004850| 6f 63 6b 5f 64 65 70 74 | 68 3b 0d 0d 23 69 66 64 |ock_dept|h;..#ifd|
|00004860| 65 66 20 44 42 58 5f 44 | 45 42 55 47 47 49 4e 47 |ef DBX_D|EBUGGING|
|00004870| 5f 49 4e 46 4f 0d 09 20 | 20 69 66 20 28 77 72 69 |_INFO.. | if (wri|
|00004880| 74 65 5f 73 79 6d 62 6f | 6c 73 20 3d 3d 20 44 42 |te_symbo|ls == DB|
|00004890| 58 5f 44 45 42 55 47 20 | 26 26 20 62 6c 6f 63 6b |X_DEBUG |&& block|
|000048a0| 5f 64 65 70 74 68 20 3e | 3d 20 30 29 0d 09 20 20 |_depth >|= 0).. |
|000048b0| 20 20 41 53 4d 5f 4f 55 | 54 50 55 54 5f 49 4e 54 | ASM_OU|TPUT_INT|
|000048c0| 45 52 4e 41 4c 5f 4c 41 | 42 45 4c 20 28 66 69 6c |ERNAL_LA|BEL (fil|
|000048d0| 65 2c 20 22 4c 42 45 22 | 2c 0d 09 09 09 09 20 20 |e, "LBE"|,..... |
|000048e0| 20 20 20 20 20 70 65 6e | 64 69 6e 67 5f 62 6c 6f | pen|ding_blo|
|000048f0| 63 6b 73 5b 62 6c 6f 63 | 6b 5f 64 65 70 74 68 5d |cks[bloc|k_depth]|
|00004900| 29 3b 0d 23 65 6e 64 69 | 66 0d 0d 23 69 66 64 65 |);.#endi|f..#ifde|
|00004910| 66 20 53 44 42 5f 44 45 | 42 55 47 47 49 4e 47 5f |f SDB_DE|BUGGING_|
|00004920| 49 4e 46 4f 0d 09 20 20 | 69 66 20 28 77 72 69 74 |INFO.. |if (writ|
|00004930| 65 5f 73 79 6d 62 6f 6c | 73 20 3d 3d 20 53 44 42 |e_symbol|s == SDB|
|00004940| 5f 44 45 42 55 47 20 26 | 26 20 62 6c 6f 63 6b 5f |_DEBUG &|& block_|
|00004950| 64 65 70 74 68 20 3e 3d | 20 30 29 0d 09 20 20 20 |depth >=| 0).. |
|00004960| 20 73 64 62 6f 75 74 5f | 65 6e 64 5f 62 6c 6f 63 | sdbout_|end_bloc|
|00004970| 6b 20 28 66 69 6c 65 2c | 20 6c 61 73 74 5f 6c 69 |k (file,| last_li|
|00004980| 6e 65 6e 75 6d 29 3b 0d | 23 65 6e 64 69 66 0d 0d |nenum);.|#endif..|
|00004990| 09 20 20 69 66 20 28 77 | 72 69 74 65 5f 73 79 6d |. if (w|rite_sym|
|000049a0| 62 6f 6c 73 20 3d 3d 20 | 47 44 42 5f 44 45 42 55 |bols == |GDB_DEBU|
|000049b0| 47 29 0d 09 20 20 20 20 | 66 70 72 69 6e 74 66 20 |G).. |fprintf |
|000049c0| 28 66 69 6c 65 2c 20 22 | 5c 74 2e 67 64 62 65 6e |(file, "|\t.gdben|
|000049d0| 64 20 25 64 5c 6e 22 2c | 20 70 65 6e 64 69 6e 67 |d %d\n",| pending|
|000049e0| 5f 62 6c 6f 63 6b 73 5b | 62 6c 6f 63 6b 5f 64 65 |_blocks[|block_de|
|000049f0| 70 74 68 5d 29 3b 0d 09 | 7d 0d 20 20 20 20 20 20 |pth]);..|}. |
|00004a00| 65 6c 73 65 20 69 66 20 | 28 4e 4f 54 45 5f 4c 49 |else if |(NOTE_LI|
|00004a10| 4e 45 5f 4e 55 4d 42 45 | 52 20 28 69 6e 73 6e 29 |NE_NUMBE|R (insn)|
|00004a20| 20 3e 20 30 29 0d 09 2f | 2a 20 54 68 69 73 20 6e | > 0)../|* This n|
|00004a30| 6f 74 65 20 69 73 20 61 | 20 6c 69 6e 65 2d 6e 75 |ote is a| line-nu|
|00004a40| 6d 62 65 72 2e 20 20 2a | 2f 0d 09 6f 75 74 70 75 |mber. *|/..outpu|
|00004a50| 74 5f 73 6f 75 72 63 65 | 5f 6c 69 6e 65 20 28 66 |t_source|_line (f|
|00004a60| 69 6c 65 2c 20 69 6e 73 | 6e 2c 20 77 72 69 74 65 |ile, ins|n, write|
|00004a70| 5f 73 79 6d 62 6f 6c 73 | 29 3b 0d 20 20 20 20 20 |_symbols|);. |
|00004a80| 20 62 72 65 61 6b 3b 0d | 0d 20 20 20 20 63 61 73 | break;.|. cas|
|00004a90| 65 20 42 41 52 52 49 45 | 52 3a 0d 23 69 66 64 65 |e BARRIE|R:.#ifde|
|00004aa0| 66 20 41 53 4d 5f 4f 55 | 54 50 55 54 5f 41 4c 49 |f ASM_OU|TPUT_ALI|
|00004ab0| 47 4e 5f 43 4f 44 45 0d | 20 20 20 20 20 20 41 53 |GN_CODE.| AS|
|00004ac0| 4d 5f 4f 55 54 50 55 54 | 5f 41 4c 49 47 4e 5f 43 |M_OUTPUT|_ALIGN_C|
|00004ad0| 4f 44 45 20 28 66 69 6c | 65 29 3b 0d 23 65 6e 64 |ODE (fil|e);.#end|
|00004ae0| 69 66 0d 20 20 20 20 20 | 20 62 72 65 61 6b 3b 0d |if. | break;.|
|00004af0| 0d 20 20 20 20 63 61 73 | 65 20 43 4f 44 45 5f 4c |. cas|e CODE_L|
|00004b00| 41 42 45 4c 3a 0d 20 20 | 20 20 20 20 43 43 5f 53 |ABEL:. | CC_S|
|00004b10| 54 41 54 55 53 5f 49 4e | 49 54 3b 0d 20 20 20 20 |TATUS_IN|IT;. |
|00004b20| 20 20 69 66 20 28 70 72 | 65 73 63 61 6e 20 3e 20 | if (pr|escan > |
|00004b30| 30 29 0d 09 62 72 65 61 | 6b 3b 0d 20 20 20 20 20 |0)..brea|k;. |
|00004b40| 20 6e 65 77 5f 62 6c 6f | 63 6b 20 3d 20 31 3b 0d | new_blo|ck = 1;.|
|00004b50| 20 20 20 20 20 20 69 66 | 20 28 61 70 70 5f 6f 6e | if| (app_on|
|00004b60| 29 0d 09 7b 0d 09 20 20 | 66 70 72 69 6e 74 66 20 |)..{.. |fprintf |
|00004b70| 28 66 69 6c 65 2c 20 41 | 53 4d 5f 41 50 50 5f 4f |(file, A|SM_APP_O|
|00004b80| 46 46 29 3b 0d 09 20 20 | 61 70 70 5f 6f 6e 20 3d |FF);.. |app_on =|
|00004b90| 20 30 3b 0d 09 7d 0d 23 | 69 66 64 65 66 20 41 53 | 0;..}.#|ifdef AS|
|00004ba0| 4d 5f 4f 55 54 50 55 54 | 5f 43 41 53 45 5f 4c 41 |M_OUTPUT|_CASE_LA|
|00004bb0| 42 45 4c 0d 20 20 20 20 | 20 20 69 66 20 28 4e 45 |BEL. | if (NE|
|00004bc0| 58 54 5f 49 4e 53 4e 20 | 28 69 6e 73 6e 29 20 21 |XT_INSN |(insn) !|
|00004bd0| 3d 20 30 0d 09 20 20 26 | 26 20 47 45 54 5f 43 4f |= 0.. &|& GET_CO|
|00004be0| 44 45 20 28 4e 45 58 54 | 5f 49 4e 53 4e 20 28 69 |DE (NEXT|_INSN (i|
|00004bf0| 6e 73 6e 29 29 20 3d 3d | 20 4a 55 4d 50 5f 49 4e |nsn)) ==| JUMP_IN|
|00004c00| 53 4e 29 0d 09 7b 0d 09 | 20 20 72 74 78 20 6e 65 |SN)..{..| rtx ne|
|00004c10| 78 74 62 6f 64 79 20 3d | 20 50 41 54 54 45 52 4e |xtbody =| PATTERN|
|00004c20| 20 28 4e 45 58 54 5f 49 | 4e 53 4e 20 28 69 6e 73 | (NEXT_I|NSN (ins|
|00004c30| 6e 29 29 3b 0d 0d 09 20 | 20 2f 2a 20 49 66 20 74 |n));... | /* If t|
|00004c40| 68 69 73 20 6c 61 62 65 | 6c 20 69 73 20 66 6f 6c |his labe|l is fol|
|00004c50| 6c 6f 77 65 64 20 62 79 | 20 61 20 6a 75 6d 70 2d |lowed by| a jump-|
|00004c60| 74 61 62 6c 65 2c 0d 09 | 20 20 20 20 20 6f 75 74 |table,..| out|
|00004c70| 70 75 74 20 74 68 65 20 | 74 77 6f 20 6f 66 20 74 |put the |two of t|
|00004c80| 68 65 6d 20 74 6f 67 65 | 74 68 65 72 20 69 6e 20 |hem toge|ther in |
|00004c90| 61 20 73 70 65 63 69 61 | 6c 20 77 61 79 2e 20 20 |a specia|l way. |
|00004ca0| 2a 2f 0d 0d 09 20 20 69 | 66 20 28 47 45 54 5f 43 |*/... i|f (GET_C|
|00004cb0| 4f 44 45 20 28 6e 65 78 | 74 62 6f 64 79 29 20 3d |ODE (nex|tbody) =|
|00004cc0| 3d 20 41 44 44 52 5f 56 | 45 43 0d 09 20 20 20 20 |= ADDR_V|EC.. |
|00004cd0| 20 20 7c 7c 20 47 45 54 | 5f 43 4f 44 45 20 28 6e | || GET|_CODE (n|
|00004ce0| 65 78 74 62 6f 64 79 29 | 20 3d 3d 20 41 44 44 52 |extbody)| == ADDR|
|00004cf0| 5f 44 49 46 46 5f 56 45 | 43 29 0d 09 20 20 20 20 |_DIFF_VE|C).. |
|00004d00| 7b 0d 09 20 20 20 20 20 | 20 41 53 4d 5f 4f 55 54 |{.. | ASM_OUT|
|00004d10| 50 55 54 5f 43 41 53 45 | 5f 4c 41 42 45 4c 20 28 |PUT_CASE|_LABEL (|
|00004d20| 66 69 6c 65 2c 20 22 4c | 22 2c 20 43 4f 44 45 5f |file, "L|", CODE_|
|00004d30| 4c 41 42 45 4c 5f 4e 55 | 4d 42 45 52 20 28 69 6e |LABEL_NU|MBER (in|
|00004d40| 73 6e 29 2c 0d 09 09 09 | 09 20 20 20 20 20 4e 45 |sn),....|. NE|
|00004d50| 58 54 5f 49 4e 53 4e 20 | 28 69 6e 73 6e 29 29 3b |XT_INSN |(insn));|
|00004d60| 0d 09 20 20 20 20 20 20 | 62 72 65 61 6b 3b 0d 09 |.. |break;..|
|00004d70| 20 20 20 20 7d 0d 09 7d | 0d 23 65 6e 64 69 66 0d | }..}|.#endif.|
|00004d80| 0d 20 20 20 20 20 20 41 | 53 4d 5f 4f 55 54 50 55 |. A|SM_OUTPU|
|00004d90| 54 5f 49 4e 54 45 52 4e | 41 4c 5f 4c 41 42 45 4c |T_INTERN|AL_LABEL|
|00004da0| 20 28 66 69 6c 65 2c 20 | 22 4c 22 2c 20 43 4f 44 | (file, |"L", COD|
|00004db0| 45 5f 4c 41 42 45 4c 5f | 4e 55 4d 42 45 52 20 28 |E_LABEL_|NUMBER (|
|00004dc0| 69 6e 73 6e 29 29 3b 0d | 20 20 20 20 20 20 62 72 |insn));.| br|
|00004dd0| 65 61 6b 3b 0d 0d 20 20 | 20 20 64 65 66 61 75 6c |eak;.. | defaul|
|00004de0| 74 3a 0d 20 20 20 20 20 | 20 7b 0d 09 72 65 67 69 |t:. | {..regi|
|00004df0| 73 74 65 72 20 72 74 78 | 20 62 6f 64 79 20 3d 20 |ster rtx| body = |
|00004e00| 50 41 54 54 45 52 4e 20 | 28 69 6e 73 6e 29 3b 0d |PATTERN |(insn);.|
|00004e10| 09 69 6e 74 20 69 6e 73 | 6e 5f 63 6f 64 65 5f 6e |.int ins|n_code_n|
|00004e20| 75 6d 62 65 72 3b 0d 09 | 63 68 61 72 20 2a 74 65 |umber;..|char *te|
|00004e30| 6d 70 6c 61 74 65 3b 0d | 0d 09 2f 2a 20 41 6e 20 |mplate;.|../* An |
|00004e40| 49 4e 53 4e 2c 20 4a 55 | 4d 50 5f 49 4e 53 4e 20 |INSN, JU|MP_INSN |
|00004e50| 6f 72 20 43 41 4c 4c 5f | 49 4e 53 4e 2e 0d 09 20 |or CALL_|INSN... |
|00004e60| 20 20 46 69 72 73 74 20 | 63 68 65 63 6b 20 66 6f | First |check fo|
|00004e70| 72 20 73 70 65 63 69 61 | 6c 20 6b 69 6e 64 73 20 |r specia|l kinds |
|00004e80| 74 68 61 74 20 72 65 63 | 6f 67 20 64 6f 65 73 6e |that rec|og doesn|
|00004e90| 27 74 20 72 65 63 6f 67 | 6e 69 7a 65 2e 20 20 2a |'t recog|nize. *|
|00004ea0| 2f 0d 0d 09 69 66 20 28 | 47 45 54 5f 43 4f 44 45 |/...if (|GET_CODE|
|00004eb0| 20 28 62 6f 64 79 29 20 | 3d 3d 20 55 53 45 20 2f | (body) |== USE /|
|00004ec0| 2a 20 54 68 65 73 65 20 | 61 72 65 20 6a 75 73 74 |* These |are just|
|00004ed0| 20 64 65 63 6c 61 72 61 | 74 69 6f 6e 73 20 2a 2f | declara|tions */|
|00004ee0| 0d 09 20 20 20 20 7c 7c | 20 47 45 54 5f 43 4f 44 |.. ||| GET_COD|
|00004ef0| 45 20 28 62 6f 64 79 29 | 20 3d 3d 20 43 4c 4f 42 |E (body)| == CLOB|
|00004f00| 42 45 52 29 0d 09 20 20 | 62 72 65 61 6b 3b 0d 0d |BER).. |break;..|
|00004f10| 09 69 66 20 28 70 72 6f | 66 69 6c 65 5f 62 6c 6f |.if (pro|file_blo|
|00004f20| 63 6b 5f 66 6c 61 67 20 | 26 26 20 6e 65 77 5f 62 |ck_flag |&& new_b|
|00004f30| 6c 6f 63 6b 29 0d 09 20 | 20 7b 0d 09 20 20 20 20 |lock).. | {.. |
|00004f40| 6e 65 77 5f 62 6c 6f 63 | 6b 20 3d 20 30 3b 0d 09 |new_bloc|k = 0;..|
|00004f50| 20 20 20 20 2f 2a 20 45 | 6e 61 62 6c 65 20 74 68 | /* E|nable th|
|00004f60| 65 20 74 61 62 6c 65 20 | 6f 66 20 62 61 73 69 63 |e table |of basic|
|00004f70| 2d 62 6c 6f 63 6b 20 75 | 73 65 20 63 6f 75 6e 74 |-block u|se count|
|00004f80| 73 0d 09 20 20 20 20 20 | 20 20 74 6f 20 70 6f 69 |s.. | to poi|
|00004f90| 6e 74 20 61 74 20 74 68 | 65 20 63 6f 64 65 20 69 |nt at th|e code i|
|00004fa0| 74 20 61 70 70 6c 69 65 | 73 20 74 6f 2e 20 20 2a |t applie|s to. *|
|00004fb0| 2f 0d 09 20 20 20 20 41 | 53 4d 5f 4f 55 54 50 55 |/.. A|SM_OUTPU|
|00004fc0| 54 5f 49 4e 54 45 52 4e | 41 4c 5f 4c 41 42 45 4c |T_INTERN|AL_LABEL|
|00004fd0| 20 28 66 69 6c 65 2c 20 | 22 4c 50 42 22 2c 20 63 | (file, |"LPB", c|
|00004fe0| 6f 75 6e 74 5f 62 61 73 | 69 63 5f 62 6c 6f 63 6b |ount_bas|ic_block|
|00004ff0| 73 29 3b 0d 09 20 20 20 | 20 2f 2a 20 42 65 66 6f |s);.. | /* Befo|
|00005000| 72 65 20 66 69 72 73 74 | 20 69 6e 73 6e 20 6f 66 |re first| insn of|
|00005010| 20 74 68 69 73 20 62 61 | 73 69 63 20 62 6c 6f 63 | this ba|sic bloc|
|00005020| 6b 2c 20 69 6e 63 72 65 | 6d 65 6e 74 20 74 68 65 |k, incre|ment the|
|00005030| 0d 09 20 20 20 20 20 20 | 20 63 6f 75 6e 74 20 6f |.. | count o|
|00005040| 66 20 74 69 6d 65 73 20 | 69 74 20 77 61 73 20 65 |f times |it was e|
|00005050| 6e 74 65 72 65 64 2e 20 | 20 2a 2f 0d 23 69 66 64 |ntered. | */.#ifd|
|00005060| 65 66 20 42 4c 4f 43 4b | 5f 50 52 4f 46 49 4c 45 |ef BLOCK|_PROFILE|
|00005070| 52 0d 09 20 20 20 20 42 | 4c 4f 43 4b 5f 50 52 4f |R.. B|LOCK_PRO|
|00005080| 46 49 4c 45 52 20 28 66 | 69 6c 65 2c 20 63 6f 75 |FILER (f|ile, cou|
|00005090| 6e 74 5f 62 61 73 69 63 | 5f 62 6c 6f 63 6b 73 29 |nt_basic|_blocks)|
|000050a0| 3b 0d 23 65 6e 64 69 66 | 0d 09 20 20 20 20 63 6f |;.#endif|.. co|
|000050b0| 75 6e 74 5f 62 61 73 69 | 63 5f 62 6c 6f 63 6b 73 |unt_basi|c_blocks|
|000050c0| 2b 2b 3b 0d 09 20 20 7d | 0d 0d 09 69 66 20 28 47 |++;.. }|...if (G|
|000050d0| 45 54 5f 43 4f 44 45 20 | 28 62 6f 64 79 29 20 3d |ET_CODE |(body) =|
|000050e0| 3d 20 41 53 4d 5f 49 4e | 50 55 54 29 0d 09 20 20 |= ASM_IN|PUT).. |
|000050f0| 7b 0d 09 20 20 20 20 2f | 2a 20 54 68 65 72 65 27 |{.. /|* There'|
|00005100| 73 20 6e 6f 20 74 65 6c | 6c 69 6e 67 20 77 68 61 |s no tel|ling wha|
|00005110| 74 20 74 68 61 74 20 64 | 69 64 20 74 6f 20 74 68 |t that d|id to th|
|00005120| 65 20 63 6f 6e 64 69 74 | 69 6f 6e 20 63 6f 64 65 |e condit|ion code|
|00005130| 73 2e 20 20 2a 2f 0d 09 | 20 20 20 20 43 43 5f 53 |s. */..| CC_S|
|00005140| 54 41 54 55 53 5f 49 4e | 49 54 3b 0d 09 20 20 20 |TATUS_IN|IT;.. |
|00005150| 20 69 66 20 28 70 72 65 | 73 63 61 6e 20 3e 20 30 | if (pre|scan > 0|
|00005160| 29 0d 09 20 20 20 20 20 | 20 62 72 65 61 6b 3b 0d |).. | break;.|
|00005170| 09 20 20 20 20 69 66 20 | 28 21 20 61 70 70 5f 6f |. if |(! app_o|
|00005180| 6e 29 0d 09 20 20 20 20 | 20 20 7b 0d 09 09 66 70 |n).. | {...fp|
|00005190| 72 69 6e 74 66 20 28 66 | 69 6c 65 2c 20 41 53 4d |rintf (f|ile, ASM|
|000051a0| 5f 41 50 50 5f 4f 4e 29 | 3b 0d 09 09 61 70 70 5f |_APP_ON)|;...app_|
|000051b0| 6f 6e 20 3d 20 31 3b 0d | 09 20 20 20 20 20 20 7d |on = 1;.|. }|
|000051c0| 0d 09 20 20 20 20 66 70 | 72 69 6e 74 66 20 28 61 |.. fp|rintf (a|
|000051d0| 73 6d 5f 6f 75 74 5f 66 | 69 6c 65 2c 20 22 5c 74 |sm_out_f|ile, "\t|
|000051e0| 25 73 5c 6e 22 2c 20 58 | 53 54 52 20 28 62 6f 64 |%s\n", X|STR (bod|
|000051f0| 79 2c 20 30 29 29 3b 0d | 09 20 20 20 20 62 72 65 |y, 0));.|. bre|
|00005200| 61 6b 3b 0d 09 20 20 7d | 0d 0d 09 2f 2a 20 44 65 |ak;.. }|.../* De|
|00005210| 74 65 63 74 20 60 61 73 | 6d 27 20 63 6f 6e 73 74 |tect `as|m' const|
|00005220| 72 75 63 74 20 77 69 74 | 68 20 6f 70 65 72 61 6e |ruct wit|h operan|
|00005230| 64 73 2e 20 20 2a 2f 0d | 09 69 66 20 28 61 73 6d |ds. */.|.if (asm|
|00005240| 5f 6e 6f 70 65 72 61 6e | 64 73 20 28 62 6f 64 79 |_noperan|ds (body|
|00005250| 29 20 3e 3d 20 30 29 0d | 09 20 20 7b 0d 09 20 20 |) >= 0).|. {.. |
|00005260| 20 20 69 6e 74 20 6e 6f | 70 65 72 61 6e 64 73 20 | int no|perands |
|00005270| 3d 20 61 73 6d 5f 6e 6f | 70 65 72 61 6e 64 73 20 |= asm_no|perands |
|00005280| 28 62 6f 64 79 29 3b 0d | 09 20 20 20 20 72 74 78 |(body);.|. rtx|
|00005290| 20 2a 6f 70 73 3b 0d 09 | 20 20 20 20 63 68 61 72 | *ops;..| char|
|000052a0| 20 2a 73 74 72 69 6e 67 | 3b 0d 0d 09 20 20 20 20 | *string|;... |
|000052b0| 2f 2a 20 54 68 65 72 65 | 27 73 20 6e 6f 20 74 65 |/* There|'s no te|
|000052c0| 6c 6c 69 6e 67 20 77 68 | 61 74 20 74 68 61 74 20 |lling wh|at that |
|000052d0| 64 69 64 20 74 6f 20 74 | 68 65 20 63 6f 6e 64 69 |did to t|he condi|
|000052e0| 74 69 6f 6e 20 63 6f 64 | 65 73 2e 20 20 2a 2f 0d |tion cod|es. */.|
|000052f0| 09 20 20 20 20 43 43 5f | 53 54 41 54 55 53 5f 49 |. CC_|STATUS_I|
|00005300| 4e 49 54 3b 0d 09 20 20 | 20 20 69 66 20 28 70 72 |NIT;.. | if (pr|
|00005310| 65 73 63 61 6e 20 3e 20 | 30 29 0d 09 20 20 20 20 |escan > |0).. |
|00005320| 20 20 62 72 65 61 6b 3b | 0d 0d 09 20 20 20 20 2f | break;|... /|
|00005330| 2a 20 61 6c 6c 6f 63 61 | 20 77 6f 6e 27 74 20 64 |* alloca| won't d|
|00005340| 6f 20 68 65 72 65 2c 20 | 73 69 6e 63 65 20 6f 6e |o here, |since on|
|00005350| 6c 79 20 72 65 74 75 72 | 6e 20 66 72 6f 6d 20 60 |ly retur|n from `|
|00005360| 66 69 6e 61 6c 27 0d 09 | 20 20 20 20 20 20 20 77 |final'..| w|
|00005370| 6f 75 6c 64 20 66 72 65 | 65 20 69 74 2e 20 20 2a |ould fre|e it. *|
|00005380| 2f 0d 09 20 20 20 20 69 | 66 20 28 6e 6f 70 65 72 |/.. i|f (noper|
|00005390| 61 6e 64 73 20 3e 20 30 | 29 0d 09 20 20 20 20 20 |ands > 0|).. |
|000053a0| 20 6f 70 73 20 3d 20 28 | 72 74 78 20 2a 29 20 78 | ops = (|rtx *) x|
|000053b0| 6d 61 6c 6c 6f 63 20 28 | 6e 6f 70 65 72 61 6e 64 |malloc (|noperand|
|000053c0| 73 20 2a 20 73 69 7a 65 | 6f 66 20 28 72 74 78 29 |s * size|of (rtx)|
|000053d0| 29 3b 0d 0d 09 20 20 20 | 20 69 66 20 28 21 20 61 |);... | if (! a|
|000053e0| 70 70 5f 6f 6e 29 0d 09 | 20 20 20 20 20 20 7b 0d |pp_on)..| {.|
|000053f0| 09 09 66 70 72 69 6e 74 | 66 20 28 66 69 6c 65 2c |..fprint|f (file,|
|00005400| 20 41 53 4d 5f 41 50 50 | 5f 4f 4e 29 3b 0d 09 09 | ASM_APP|_ON);...|
|00005410| 61 70 70 5f 6f 6e 20 3d | 20 31 3b 0d 09 20 20 20 |app_on =| 1;.. |
|00005420| 20 20 20 7d 0d 0d 09 20 | 20 20 20 2f 2a 20 47 65 | }... | /* Ge|
|00005430| 74 20 6f 75 74 20 74 68 | 65 20 6f 70 65 72 61 6e |t out th|e operan|
|00005440| 64 20 76 61 6c 75 65 73 | 2e 20 20 2a 2f 0d 09 20 |d values|. */.. |
|00005450| 20 20 20 73 74 72 69 6e | 67 20 3d 20 64 65 63 6f | strin|g = deco|
|00005460| 64 65 5f 61 73 6d 5f 6f | 70 65 72 61 6e 64 73 20 |de_asm_o|perands |
|00005470| 28 62 6f 64 79 2c 20 6f | 70 73 2c 20 30 2c 20 30 |(body, o|ps, 0, 0|
|00005480| 2c 20 30 29 3b 0d 09 20 | 20 20 20 2f 2a 20 49 6e |, 0);.. | /* In|
|00005490| 68 69 62 69 74 20 61 62 | 6f 72 74 73 20 6f 6e 20 |hibit ab|orts on |
|000054a0| 77 68 61 74 20 77 6f 75 | 6c 64 20 6f 74 68 65 72 |what wou|ld other|
|000054b0| 77 69 73 65 20 62 65 20 | 63 6f 6d 70 69 6c 65 72 |wise be |compiler|
|000054c0| 20 62 75 67 73 2e 20 20 | 2a 2f 0d 09 20 20 20 20 | bugs. |*/.. |
|000054d0| 69 6e 73 6e 5f 6e 6f 70 | 65 72 61 6e 64 73 20 3d |insn_nop|erands =|
|000054e0| 20 6e 6f 70 65 72 61 6e | 64 73 3b 0d 09 20 20 20 | noperan|ds;.. |
|000054f0| 20 74 68 69 73 5f 69 73 | 5f 61 73 6d 5f 6f 70 65 | this_is|_asm_ope|
|00005500| 72 61 6e 64 73 20 3d 20 | 69 6e 73 6e 3b 0d 09 20 |rands = |insn;.. |
|00005510| 20 20 20 2f 2a 20 4f 75 | 74 70 75 74 20 74 68 65 | /* Ou|tput the|
|00005520| 20 69 6e 73 6e 20 75 73 | 69 6e 67 20 74 68 65 6d | insn us|ing them|
|00005530| 2e 20 20 2a 2f 0d 09 20 | 20 20 20 6f 75 74 70 75 |. */.. | outpu|
|00005540| 74 5f 61 73 6d 5f 69 6e | 73 6e 20 28 73 74 72 69 |t_asm_in|sn (stri|
|00005550| 6e 67 2c 20 6f 70 73 29 | 3b 0d 09 20 20 20 20 74 |ng, ops)|;.. t|
|00005560| 68 69 73 5f 69 73 5f 61 | 73 6d 5f 6f 70 65 72 61 |his_is_a|sm_opera|
|00005570| 6e 64 73 20 3d 20 30 3b | 0d 09 20 20 20 20 69 66 |nds = 0;|.. if|
|00005580| 20 28 6e 6f 70 65 72 61 | 6e 64 73 20 3e 20 30 29 | (nopera|nds > 0)|
|00005590| 0d 09 20 20 20 20 20 20 | 66 72 65 65 20 28 6f 70 |.. |free (op|
|000055a0| 73 29 3b 0d 09 20 20 20 | 20 62 72 65 61 6b 3b 0d |s);.. | break;.|
|000055b0| 09 20 20 7d 0d 0d 09 69 | 66 20 28 70 72 65 73 63 |. }...i|f (presc|
|000055c0| 61 6e 20 3c 3d 20 30 20 | 26 26 20 61 70 70 5f 6f |an <= 0 |&& app_o|
|000055d0| 6e 29 0d 09 20 20 7b 0d | 09 20 20 20 20 66 70 72 |n).. {.|. fpr|
|000055e0| 69 6e 74 66 20 28 66 69 | 6c 65 2c 20 41 53 4d 5f |intf (fi|le, ASM_|
|000055f0| 41 50 50 5f 4f 46 46 29 | 3b 0d 09 20 20 20 20 61 |APP_OFF)|;.. a|
|00005600| 70 70 5f 6f 6e 20 3d 20 | 30 3b 0d 09 20 20 7d 0d |pp_on = |0;.. }.|
|00005610| 0d 09 2f 2a 20 44 65 74 | 65 63 74 20 69 6e 73 6e |../* Det|ect insn|
|00005620| 73 20 74 68 61 74 20 61 | 72 65 20 72 65 61 6c 6c |s that a|re reall|
|00005630| 79 20 6a 75 6d 70 2d 74 | 61 62 6c 65 73 0d 09 20 |y jump-t|ables.. |
|00005640| 20 20 61 6e 64 20 6f 75 | 74 70 75 74 20 74 68 65 | and ou|tput the|
|00005650| 6d 20 61 73 20 73 75 63 | 68 2e 20 20 2a 2f 0d 0d |m as suc|h. */..|
|00005660| 09 69 66 20 28 47 45 54 | 5f 43 4f 44 45 20 28 62 |.if (GET|_CODE (b|
|00005670| 6f 64 79 29 20 3d 3d 20 | 41 44 44 52 5f 56 45 43 |ody) == |ADDR_VEC|
|00005680| 29 0d 09 20 20 7b 0d 09 | 20 20 20 20 72 65 67 69 |).. {..| regi|
|00005690| 73 74 65 72 20 69 6e 74 | 20 76 6c 65 6e 2c 20 69 |ster int| vlen, i|
|000056a0| 64 78 3b 0d 0d 09 20 20 | 20 20 69 66 20 28 70 72 |dx;... | if (pr|
|000056b0| 65 73 63 61 6e 20 3e 20 | 30 29 0d 09 20 20 20 20 |escan > |0).. |
|000056c0| 20 20 62 72 65 61 6b 3b | 0d 0d 09 20 20 20 20 76 | break;|... v|
|000056d0| 6c 65 6e 20 3d 20 58 56 | 45 43 4c 45 4e 20 28 62 |len = XV|ECLEN (b|
|000056e0| 6f 64 79 2c 20 30 29 3b | 0d 09 20 20 20 20 66 6f |ody, 0);|.. fo|
|000056f0| 72 20 28 69 64 78 20 3d | 20 30 3b 20 69 64 78 20 |r (idx =| 0; idx |
|00005700| 3c 20 76 6c 65 6e 3b 20 | 69 64 78 2b 2b 29 0d 09 |< vlen; |idx++)..|
|00005710| 20 20 20 20 20 20 41 53 | 4d 5f 4f 55 54 50 55 54 | AS|M_OUTPUT|
|00005720| 5f 41 44 44 52 5f 56 45 | 43 5f 45 4c 54 20 28 66 |_ADDR_VE|C_ELT (f|
|00005730| 69 6c 65 2c 0d 09 09 09 | 09 20 20 20 20 20 20 20 |ile,....|. |
|00005740| 43 4f 44 45 5f 4c 41 42 | 45 4c 5f 4e 55 4d 42 45 |CODE_LAB|EL_NUMBE|
|00005750| 52 20 28 58 45 58 50 20 | 28 58 56 45 43 45 58 50 |R (XEXP |(XVECEXP|
|00005760| 20 28 62 6f 64 79 2c 20 | 30 2c 20 69 64 78 29 2c | (body, |0, idx),|
|00005770| 20 30 29 29 29 3b 0d 23 | 69 66 64 65 66 20 41 53 | 0)));.#|ifdef AS|
|00005780| 4d 5f 4f 55 54 50 55 54 | 5f 43 41 53 45 5f 45 4e |M_OUTPUT|_CASE_EN|
|00005790| 44 0d 09 20 20 20 20 41 | 53 4d 5f 4f 55 54 50 55 |D.. A|SM_OUTPU|
|000057a0| 54 5f 43 41 53 45 5f 45 | 4e 44 20 28 66 69 6c 65 |T_CASE_E|ND (file|
|000057b0| 2c 0d 09 09 09 09 20 43 | 4f 44 45 5f 4c 41 42 45 |,..... C|ODE_LABE|
|000057c0| 4c 5f 4e 55 4d 42 45 52 | 20 28 50 52 45 56 5f 49 |L_NUMBER| (PREV_I|
|000057d0| 4e 53 4e 20 28 69 6e 73 | 6e 29 29 2c 0d 09 09 09 |NSN (ins|n)),....|
|000057e0| 09 20 69 6e 73 6e 29 3b | 0d 23 65 6e 64 69 66 0d |. insn);|.#endif.|
|000057f0| 09 20 20 20 20 62 72 65 | 61 6b 3b 0d 09 20 20 7d |. bre|ak;.. }|
|00005800| 0d 09 69 66 20 28 47 45 | 54 5f 43 4f 44 45 20 28 |..if (GE|T_CODE (|
|00005810| 62 6f 64 79 29 20 3d 3d | 20 41 44 44 52 5f 44 49 |body) ==| ADDR_DI|
|00005820| 46 46 5f 56 45 43 29 0d | 09 20 20 7b 0d 09 20 20 |FF_VEC).|. {.. |
|00005830| 20 20 72 65 67 69 73 74 | 65 72 20 69 6e 74 20 76 | regist|er int v|
|00005840| 6c 65 6e 2c 20 69 64 78 | 3b 0d 0d 09 20 20 20 20 |len, idx|;... |
|00005850| 69 66 20 28 70 72 65 73 | 63 61 6e 20 3e 20 30 29 |if (pres|can > 0)|
|00005860| 0d 09 20 20 20 20 20 20 | 62 72 65 61 6b 3b 0d 0d |.. |break;..|
|00005870| 09 20 20 20 20 76 6c 65 | 6e 20 3d 20 58 56 45 43 |. vle|n = XVEC|
|00005880| 4c 45 4e 20 28 62 6f 64 | 79 2c 20 31 29 3b 0d 09 |LEN (bod|y, 1);..|
|00005890| 20 20 20 20 66 6f 72 20 | 28 69 64 78 20 3d 20 30 | for |(idx = 0|
|000058a0| 3b 20 69 64 78 20 3c 20 | 76 6c 65 6e 3b 20 69 64 |; idx < |vlen; id|
|000058b0| 78 2b 2b 29 0d 09 20 20 | 20 20 20 20 41 53 4d 5f |x++).. | ASM_|
|000058c0| 4f 55 54 50 55 54 5f 41 | 44 44 52 5f 44 49 46 46 |OUTPUT_A|DDR_DIFF|
|000058d0| 5f 45 4c 54 20 28 66 69 | 6c 65 2c 0d 09 09 09 09 |_ELT (fi|le,.....|
|000058e0| 09 43 4f 44 45 5f 4c 41 | 42 45 4c 5f 4e 55 4d 42 |.CODE_LA|BEL_NUMB|
|000058f0| 45 52 20 28 58 45 58 50 | 20 28 58 56 45 43 45 58 |ER (XEXP| (XVECEX|
|00005900| 50 20 28 62 6f 64 79 2c | 20 31 2c 20 69 64 78 29 |P (body,| 1, idx)|
|00005910| 2c 20 30 29 29 2c 0d 09 | 09 09 09 09 43 4f 44 45 |, 0)),..|....CODE|
|00005920| 5f 4c 41 42 45 4c 5f 4e | 55 4d 42 45 52 20 28 58 |_LABEL_N|UMBER (X|
|00005930| 45 58 50 20 28 58 45 58 | 50 20 28 62 6f 64 79 2c |EXP (XEX|P (body,|
|00005940| 20 30 29 2c 20 30 29 29 | 29 3b 0d 23 69 66 64 65 | 0), 0))|);.#ifde|
|00005950| 66 20 41 53 4d 5f 4f 55 | 54 50 55 54 5f 43 41 53 |f ASM_OU|TPUT_CAS|
|00005960| 45 5f 45 4e 44 0d 09 20 | 20 20 20 41 53 4d 5f 4f |E_END.. | ASM_O|
|00005970| 55 54 50 55 54 5f 43 41 | 53 45 5f 45 4e 44 20 28 |UTPUT_CA|SE_END (|
|00005980| 66 69 6c 65 2c 0d 09 09 | 09 09 20 43 4f 44 45 5f |file,...|.. CODE_|
|00005990| 4c 41 42 45 4c 5f 4e 55 | 4d 42 45 52 20 28 50 52 |LABEL_NU|MBER (PR|
|000059a0| 45 56 5f 49 4e 53 4e 20 | 28 69 6e 73 6e 29 29 2c |EV_INSN |(insn)),|
|000059b0| 0d 09 09 09 09 20 69 6e | 73 6e 29 3b 0d 23 65 6e |..... in|sn);.#en|
|000059c0| 64 69 66 0d 09 20 20 20 | 20 62 72 65 61 6b 3b 0d |dif.. | break;.|
|000059d0| 09 20 20 7d 0d 0d 09 69 | 66 20 28 72 65 63 6f 67 |. }...i|f (recog|
|000059e0| 5f 6d 65 6d 6f 69 7a 65 | 64 20 28 69 6e 73 6e 29 |_memoize|d (insn)|
|000059f0| 20 3d 3d 20 2d 31 0d 09 | 20 20 20 20 26 26 20 47 | == -1..| && G|
|00005a00| 45 54 5f 43 4f 44 45 20 | 28 62 6f 64 79 29 20 3d |ET_CODE |(body) =|
|00005a10| 3d 20 53 45 51 55 45 4e | 43 45 29 20 2f 2a 20 41 |= SEQUEN|CE) /* A|
|00005a20| 20 64 65 6c 61 79 65 64 | 2d 62 72 61 6e 63 68 20 | delayed|-branch |
|00005a30| 73 65 71 75 65 6e 63 65 | 20 2a 2f 0d 09 20 20 7b |sequence| */.. {|
|00005a40| 0d 09 20 20 20 20 72 65 | 67 69 73 74 65 72 20 69 |.. re|gister i|
|00005a50| 6e 74 20 69 3b 0d 09 20 | 20 20 20 69 66 20 28 70 |nt i;.. | if (p|
|00005a60| 72 65 73 63 61 6e 20 3e | 20 30 29 0d 09 20 20 20 |rescan >| 0).. |
|00005a70| 20 20 20 62 72 65 61 6b | 3b 0d 09 20 20 20 20 66 | break|;.. f|
|00005a80| 69 6e 61 6c 5f 73 65 71 | 75 65 6e 63 65 20 3d 20 |inal_seq|uence = |
|00005a90| 62 6f 64 79 3b 0d 09 20 | 20 20 20 66 6f 72 20 28 |body;.. | for (|
|00005aa0| 69 20 3d 20 30 3b 20 69 | 20 3c 20 58 56 45 43 4c |i = 0; i| < XVECL|
|00005ab0| 45 4e 20 28 62 6f 64 79 | 2c 20 30 29 3b 20 69 2b |EN (body|, 0); i+|
|00005ac0| 2b 29 0d 09 20 20 20 20 | 20 20 66 69 6e 61 6c 5f |+).. | final_|
|00005ad0| 73 63 61 6e 5f 69 6e 73 | 6e 20 28 58 56 45 43 45 |scan_ins|n (XVECE|
|00005ae0| 58 50 20 28 62 6f 64 79 | 2c 20 30 2c 20 69 29 2c |XP (body|, 0, i),|
|00005af0| 20 66 69 6c 65 2c 20 77 | 72 69 74 65 5f 73 79 6d | file, w|rite_sym|
|00005b00| 62 6f 6c 73 2c 0d 09 09 | 09 20 20 20 20 20 20 20 |bols,...|. |
|00005b10| 6f 70 74 69 6d 69 7a 65 | 2c 20 70 72 65 73 63 61 |optimize|, presca|
|00005b20| 6e 2c 20 31 29 3b 0d 09 | 20 20 20 20 66 69 6e 61 |n, 1);..| fina|
|00005b30| 6c 5f 73 65 71 75 65 6e | 63 65 20 3d 20 30 3b 0d |l_sequen|ce = 0;.|
|00005b40| 23 69 66 64 65 66 20 44 | 42 52 5f 4f 55 54 50 55 |#ifdef D|BR_OUTPU|
|00005b50| 54 5f 53 45 51 45 4e 44 | 0d 09 20 20 20 20 44 42 |T_SEQEND|.. DB|
|00005b60| 52 5f 4f 55 54 50 55 54 | 5f 53 45 51 45 4e 44 20 |R_OUTPUT|_SEQEND |
|00005b70| 28 66 69 6c 65 29 3b 0d | 23 65 6e 64 69 66 0d 09 |(file);.|#endif..|
|00005b80| 20 20 20 20 62 72 65 61 | 6b 3b 0d 09 20 20 7d 0d | brea|k;.. }.|
|00005b90| 0d 09 2f 2a 20 57 65 20 | 68 61 76 65 20 61 20 72 |../* We |have a r|
|00005ba0| 65 61 6c 20 6d 61 63 68 | 69 6e 65 20 69 6e 73 74 |eal mach|ine inst|
|00005bb0| 72 75 63 74 69 6f 6e 20 | 61 73 20 72 74 6c 2e 20 |ruction |as rtl. |
|00005bc0| 20 2a 2f 0d 0d 09 62 6f | 64 79 20 3d 20 50 41 54 | */...bo|dy = PAT|
|00005bd0| 54 45 52 4e 20 28 69 6e | 73 6e 29 3b 0d 0d 09 2f |TERN (in|sn);.../|
|00005be0| 2a 20 43 68 65 63 6b 20 | 66 6f 72 20 72 65 64 75 |* Check |for redu|
|00005bf0| 6e 64 61 6e 74 20 74 65 | 73 74 20 61 6e 64 20 63 |ndant te|st and c|
|00005c00| 6f 6d 70 61 72 65 20 69 | 6e 73 74 72 75 63 74 69 |ompare i|nstructi|
|00005c10| 6f 6e 73 0d 09 20 20 20 | 28 77 68 65 6e 20 74 68 |ons.. |(when th|
|00005c20| 65 20 63 6f 6e 64 69 74 | 69 6f 6e 20 63 6f 64 65 |e condit|ion code|
|00005c30| 73 20 61 72 65 20 61 6c | 72 65 61 64 79 20 73 65 |s are al|ready se|
|00005c40| 74 20 75 70 20 61 73 20 | 64 65 73 69 72 65 64 29 |t up as |desired)|
|00005c50| 2e 0d 09 20 20 20 54 68 | 69 73 20 69 73 20 64 6f |... Th|is is do|
|00005c60| 6e 65 20 6f 6e 6c 79 20 | 77 68 65 6e 20 6f 70 74 |ne only |when opt|
|00005c70| 69 6d 69 7a 69 6e 67 3b | 20 69 66 20 6e 6f 74 20 |imizing;| if not |
|00005c80| 6f 70 74 69 6d 69 7a 69 | 6e 67 2c 0d 09 20 20 20 |optimizi|ng,.. |
|00005c90| 69 74 20 73 68 6f 75 6c | 64 20 62 65 20 70 6f 73 |it shoul|d be pos|
|00005ca0| 73 69 62 6c 65 20 66 6f | 72 20 74 68 65 20 75 73 |sible fo|r the us|
|00005cb0| 65 72 20 74 6f 20 61 6c | 74 65 72 20 61 20 76 61 |er to al|ter a va|
|00005cc0| 72 69 61 62 6c 65 0d 09 | 20 20 20 77 69 74 68 20 |riable..| with |
|00005cd0| 74 68 65 20 64 65 62 75 | 67 67 65 72 20 69 6e 20 |the debu|gger in |
|00005ce0| 62 65 74 77 65 65 6e 20 | 73 74 61 74 65 6d 65 6e |between |statemen|
|00005cf0| 74 73 0d 09 20 20 20 61 | 6e 64 20 74 68 65 20 6e |ts.. a|nd the n|
|00005d00| 65 78 74 20 73 74 61 74 | 65 6d 65 6e 74 20 73 68 |ext stat|ement sh|
|00005d10| 6f 75 6c 64 20 72 65 65 | 78 61 6d 69 6e 65 20 74 |ould ree|xamine t|
|00005d20| 68 65 20 76 61 72 69 61 | 62 6c 65 0d 09 20 20 20 |he varia|ble.. |
|00005d30| 74 6f 20 63 6f 6d 70 75 | 74 65 20 74 68 65 20 63 |to compu|te the c|
|00005d40| 6f 6e 64 69 74 69 6f 6e | 20 63 6f 64 65 73 2e 20 |ondition| codes. |
|00005d50| 20 2a 2f 0d 0d 09 69 66 | 20 28 6f 70 74 69 6d 69 | */...if| (optimi|
|00005d60| 7a 65 0d 09 20 20 20 20 | 26 26 20 47 45 54 5f 43 |ze.. |&& GET_C|
|00005d70| 4f 44 45 20 28 62 6f 64 | 79 29 20 3d 3d 20 53 45 |ODE (bod|y) == SE|
|00005d80| 54 0d 09 20 20 20 20 26 | 26 20 47 45 54 5f 43 4f |T.. &|& GET_CO|
|00005d90| 44 45 20 28 53 45 54 5f | 44 45 53 54 20 28 62 6f |DE (SET_|DEST (bo|
|00005da0| 64 79 29 29 20 3d 3d 20 | 43 43 30 0d 09 20 20 20 |dy)) == |CC0.. |
|00005db0| 20 26 26 20 69 6e 73 6e | 20 21 3d 20 6c 61 73 74 | && insn| != last|
|00005dc0| 5f 69 67 6e 6f 72 65 64 | 5f 63 6f 6d 70 61 72 65 |_ignored|_compare|
|00005dd0| 29 0d 09 20 20 7b 0d 09 | 20 20 20 20 69 66 20 28 |).. {..| if (|
|00005de0| 47 45 54 5f 43 4f 44 45 | 20 28 53 45 54 5f 53 52 |GET_CODE| (SET_SR|
|00005df0| 43 20 28 62 6f 64 79 29 | 29 20 3d 3d 20 53 55 42 |C (body)|) == SUB|
|00005e00| 52 45 47 29 0d 09 20 20 | 20 20 20 20 53 45 54 5f |REG).. | SET_|
|00005e10| 53 52 43 20 28 62 6f 64 | 79 29 20 3d 20 61 6c 74 |SRC (bod|y) = alt|
|00005e20| 65 72 5f 73 75 62 72 65 | 67 20 28 53 45 54 5f 53 |er_subre|g (SET_S|
|00005e30| 52 43 20 28 62 6f 64 79 | 29 29 3b 0d 09 20 20 20 |RC (body|));.. |
|00005e40| 20 69 66 20 28 28 63 63 | 5f 73 74 61 74 75 73 2e | if ((cc|_status.|
|00005e50| 76 61 6c 75 65 31 20 21 | 3d 20 30 0d 09 09 20 26 |value1 !|= 0... &|
|00005e60| 26 20 72 74 78 5f 65 71 | 75 61 6c 5f 70 20 28 53 |& rtx_eq|ual_p (S|
|00005e70| 45 54 5f 53 52 43 20 28 | 62 6f 64 79 29 2c 20 63 |ET_SRC (|body), c|
|00005e80| 63 5f 73 74 61 74 75 73 | 2e 76 61 6c 75 65 31 29 |c_status|.value1)|
|00005e90| 29 0d 09 09 7c 7c 20 28 | 63 63 5f 73 74 61 74 75 |)...|| (|cc_statu|
|00005ea0| 73 2e 76 61 6c 75 65 32 | 20 21 3d 20 30 0d 09 09 |s.value2| != 0...|
|00005eb0| 20 20 20 20 26 26 20 72 | 74 78 5f 65 71 75 61 6c | && r|tx_equal|
|00005ec0| 5f 70 20 28 53 45 54 5f | 53 52 43 20 28 62 6f 64 |_p (SET_|SRC (bod|
|00005ed0| 79 29 2c 20 63 63 5f 73 | 74 61 74 75 73 2e 76 61 |y), cc_s|tatus.va|
|00005ee0| 6c 75 65 32 29 29 29 0d | 09 20 20 20 20 20 20 7b |lue2))).|. {|
|00005ef0| 0d 09 09 2f 2a 20 44 6f | 6e 27 74 20 64 65 6c 65 |.../* Do|n't dele|
|00005f00| 74 65 20 69 6e 73 6e 20 | 69 66 20 68 61 73 20 61 |te insn |if has a|
|00005f10| 6e 20 61 64 64 72 65 73 | 73 69 6e 67 20 73 69 64 |n addres|sing sid|
|00005f20| 65 2d 65 66 66 65 63 74 | 20 2a 2f 0d 09 09 69 66 |e-effect| */...if|
|00005f30| 20 28 21 20 66 69 6e 64 | 5f 72 65 67 5f 6e 6f 74 | (! find|_reg_not|
|00005f40| 65 20 28 69 6e 73 6e 2c | 20 52 45 47 5f 49 4e 43 |e (insn,| REG_INC|
|00005f50| 2c 20 30 29 0d 09 09 20 | 20 20 20 2f 2a 20 6f 72 |, 0)... | /* or|
|00005f60| 20 69 66 20 61 6e 79 74 | 68 69 6e 67 20 69 6e 20 | if anyt|hing in |
|00005f70| 69 74 20 69 73 20 76 6f | 6c 61 74 69 6c 65 2e 20 |it is vo|latile. |
|00005f80| 20 2a 2f 0d 09 09 20 20 | 20 20 26 26 20 21 20 76 | */... | && ! v|
|00005f90| 6f 6c 61 74 69 6c 65 5f | 72 65 66 73 5f 70 20 28 |olatile_|refs_p (|
|00005fa0| 50 41 54 54 45 52 4e 20 | 28 69 6e 73 6e 29 29 29 |PATTERN |(insn)))|
|00005fb0| 0d 09 09 20 20 7b 0d 09 | 09 20 20 20 20 2f 2a 20 |... {..|. /* |
|00005fc0| 57 65 20 64 6f 6e 27 74 | 20 72 65 61 6c 6c 79 20 |We don't| really |
|00005fd0| 64 65 6c 65 74 65 20 74 | 68 65 20 69 6e 73 6e 3b |delete t|he insn;|
|00005fe0| 20 6a 75 73 74 20 69 67 | 6e 6f 72 65 20 69 74 2e | just ig|nore it.|
|00005ff0| 20 20 2a 2f 0d 09 09 20 | 20 20 20 6c 61 73 74 5f | */... | last_|
|00006000| 69 67 6e 6f 72 65 64 5f | 63 6f 6d 70 61 72 65 20 |ignored_|compare |
|00006010| 3d 20 69 6e 73 6e 3b 0d | 09 09 20 20 20 20 62 72 |= insn;.|.. br|
|00006020| 65 61 6b 3b 0d 09 09 20 | 20 7d 0d 09 20 20 20 20 |eak;... | }.. |
|00006030| 20 20 7d 0d 09 20 20 7d | 0d 0d 09 2f 2a 20 46 6f | }.. }|.../* Fo|
|00006040| 6c 6c 6f 77 69 6e 67 20 | 61 20 63 6f 6e 64 69 74 |llowing |a condit|
|00006050| 69 6f 6e 61 6c 20 62 72 | 61 6e 63 68 2c 20 77 65 |ional br|anch, we|
|00006060| 20 68 61 76 65 20 61 20 | 6e 65 77 20 62 61 73 69 | have a |new basi|
|00006070| 63 20 62 6c 6f 63 6b 2e | 20 20 2a 2f 0d 09 69 66 |c block.| */..if|
|00006080| 20 28 47 45 54 5f 43 4f | 44 45 20 28 69 6e 73 6e | (GET_CO|DE (insn|
|00006090| 29 20 3d 3d 20 4a 55 4d | 50 5f 49 4e 53 4e 20 26 |) == JUM|P_INSN &|
|000060a0| 26 20 47 45 54 5f 43 4f | 44 45 20 28 62 6f 64 79 |& GET_CO|DE (body|
|000060b0| 29 20 3d 3d 20 53 45 54 | 0d 09 20 20 20 20 26 26 |) == SET|.. &&|
|000060c0| 20 47 45 54 5f 43 4f 44 | 45 20 28 53 45 54 5f 53 | GET_COD|E (SET_S|
|000060d0| 52 43 20 28 62 6f 64 79 | 29 29 20 21 3d 20 4c 41 |RC (body|)) != LA|
|000060e0| 42 45 4c 5f 52 45 46 29 | 0d 09 20 20 6e 65 77 5f |BEL_REF)|.. new_|
|000060f0| 62 6c 6f 63 6b 20 3d 20 | 31 3b 0d 0d 09 2f 2a 20 |block = |1;.../* |
|00006100| 49 66 20 74 68 69 73 20 | 69 73 20 61 20 63 6f 6e |If this |is a con|
|00006110| 64 69 74 69 6f 6e 61 6c | 20 62 72 61 6e 63 68 2c |ditional| branch,|
|00006120| 20 6d 61 79 62 65 20 6d | 6f 64 69 66 79 20 69 74 | maybe m|odify it|
|00006130| 0d 09 20 20 20 69 66 20 | 74 68 65 20 63 63 27 73 |.. if |the cc's|
|00006140| 20 61 72 65 20 69 6e 20 | 61 20 6e 6f 6e 73 74 61 | are in |a nonsta|
|00006150| 6e 64 61 72 64 20 73 74 | 61 74 65 0d 09 20 20 20 |ndard st|ate.. |
|00006160| 73 6f 20 74 68 61 74 20 | 69 74 20 61 63 63 6f 6d |so that |it accom|
|00006170| 70 6c 69 73 68 65 73 20 | 74 68 65 20 73 61 6d 65 |plishes |the same|
|00006180| 20 74 68 69 6e 67 20 74 | 68 61 74 20 69 74 20 77 | thing t|hat it w|
|00006190| 6f 75 6c 64 0d 09 20 20 | 20 64 6f 20 73 74 72 61 |ould.. | do stra|
|000061a0| 69 67 68 74 66 6f 72 77 | 61 72 64 6c 79 20 69 66 |ightforw|ardly if|
|000061b0| 20 74 68 65 20 63 63 27 | 73 20 77 65 72 65 20 73 | the cc'|s were s|
|000061c0| 65 74 20 75 70 20 6e 6f | 72 6d 61 6c 6c 79 2e 20 |et up no|rmally. |
|000061d0| 20 2a 2f 0d 0d 09 69 66 | 20 28 63 63 5f 73 74 61 | */...if| (cc_sta|
|000061e0| 74 75 73 2e 66 6c 61 67 | 73 20 21 3d 20 30 0d 09 |tus.flag|s != 0..|
|000061f0| 20 20 20 20 26 26 20 47 | 45 54 5f 43 4f 44 45 20 | && G|ET_CODE |
|00006200| 28 69 6e 73 6e 29 20 3d | 3d 20 4a 55 4d 50 5f 49 |(insn) =|= JUMP_I|
|00006210| 4e 53 4e 0d 09 20 20 20 | 20 26 26 20 47 45 54 5f |NSN.. | && GET_|
|00006220| 43 4f 44 45 20 28 62 6f | 64 79 29 20 3d 3d 20 53 |CODE (bo|dy) == S|
|00006230| 45 54 0d 09 20 20 20 20 | 26 26 20 53 45 54 5f 44 |ET.. |&& SET_D|
|00006240| 45 53 54 20 28 62 6f 64 | 79 29 20 3d 3d 20 70 63 |EST (bod|y) == pc|
|00006250| 5f 72 74 78 0d 09 20 20 | 20 20 26 26 20 47 45 54 |_rtx.. | && GET|
|00006260| 5f 43 4f 44 45 20 28 53 | 45 54 5f 53 52 43 20 28 |_CODE (S|ET_SRC (|
|00006270| 62 6f 64 79 29 29 20 3d | 3d 20 49 46 5f 54 48 45 |body)) =|= IF_THE|
|00006280| 4e 5f 45 4c 53 45 0d 09 | 20 20 20 20 2f 2a 20 54 |N_ELSE..| /* T|
|00006290| 68 69 73 20 69 73 20 64 | 6f 6e 65 20 64 75 72 69 |his is d|one duri|
|000062a0| 6e 67 20 70 72 65 73 63 | 61 6e 3b 20 69 74 20 69 |ng presc|an; it i|
|000062b0| 73 20 6e 6f 74 20 64 6f | 6e 65 20 61 67 61 69 6e |s not do|ne again|
|000062c0| 0d 09 20 20 20 20 20 20 | 20 69 6e 20 66 69 6e 61 |.. | in fina|
|000062d0| 6c 20 73 63 61 6e 20 77 | 68 65 6e 20 70 72 65 73 |l scan w|hen pres|
|000062e0| 63 61 6e 20 68 61 73 20 | 62 65 65 6e 20 64 6f 6e |can has |been don|
|000062f0| 65 2e 20 20 2a 2f 0d 09 | 20 20 20 20 26 26 20 70 |e. */..| && p|
|00006300| 72 65 73 63 61 6e 20 3e | 3d 20 30 29 0d 09 20 20 |rescan >|= 0).. |
|00006310| 7b 0d 09 20 20 20 20 2f | 2a 20 54 68 69 73 20 66 |{.. /|* This f|
|00006320| 75 6e 63 74 69 6f 6e 20 | 6d 61 79 20 61 6c 74 65 |unction |may alte|
|00006330| 72 20 74 68 65 20 63 6f | 6e 74 65 6e 74 73 20 6f |r the co|ntents o|
|00006340| 66 20 69 74 73 20 61 72 | 67 75 6d 65 6e 74 0d 09 |f its ar|gument..|
|00006350| 20 20 20 20 20 20 20 61 | 6e 64 20 63 6c 65 61 72 | a|nd clear|
|00006360| 20 73 6f 6d 65 20 6f 66 | 20 74 68 65 20 63 63 5f | some of| the cc_|
|00006370| 73 74 61 74 75 73 2e 66 | 6c 61 67 73 20 62 69 74 |status.f|lags bit|
|00006380| 73 2e 0d 09 20 20 20 20 | 20 20 20 49 74 20 6d 61 |s... | It ma|
|00006390| 79 20 61 6c 73 6f 20 72 | 65 74 75 72 6e 20 31 20 |y also r|eturn 1 |
|000063a0| 6d 65 61 6e 69 6e 67 20 | 63 6f 6e 64 69 74 69 6f |meaning |conditio|
|000063b0| 6e 20 6e 6f 77 20 61 6c | 77 61 79 73 20 74 72 75 |n now al|ways tru|
|000063c0| 65 0d 09 20 20 20 20 20 | 20 20 6f 72 20 2d 31 20 |e.. | or -1 |
|000063d0| 6d 65 61 6e 69 6e 67 20 | 63 6f 6e 64 69 74 69 6f |meaning |conditio|
|000063e0| 6e 20 6e 6f 77 20 61 6c | 77 61 79 73 20 66 61 6c |n now al|ways fal|
|000063f0| 73 65 0d 09 20 20 20 20 | 20 20 20 6f 72 20 32 20 |se.. | or 2 |
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.